Nasz blog wyświetla już wpisy, a już wkrótce będzie obsługiwał strony statyczne – i to właśnie na tych zagadnieniach (a także kilku innych krążących wokół) zajmiemy się w tej części serii o szablonach WordPressa – będzie trochę abstrakcyjnego myślenia i trochę teorii – dzisiaj raczej nie pokodujecie – zbytnio…
Skąd WordPress wie, co jest zwykłym wpisem na blogu, a co jest stroną statyczną? Wszelkie informacje potrzebne silnikowi do rozkminienia tego zagadnienia zapisane są w bazie danych – nie wdając się w szczegóły, przedstawię to obrazowo: w momencie, gdy zapisujemy treść czy to przez panel dodawanie wpisów, czy przez panel dodawania stron statycznych, WordPress dodaje do wpisu informację 1 bądź 2 – gdy następnie treść jest odczytywana do wyświetlenia na naszym blogu, WordPress odczytuje z odpowiedniej tabeli w bazie danych wartość numeryczną, która jest na stałe przypisana do określonego typu treści – i tak 1 jest wpisem, a 2 stroną statyczną – wiedząc to, WordPress automatycznie przypisuje odpowiedni szablon do wyświetlanej treści.
Pliki szablonów – wersja dla zaawansowanych
I tutaj dochodzimy do właściwego podziału plików w szablonie WordPressa, który to podział umożliwia nam tworzenie bardzo dynamicznych stron. Standardową stroną jest index.php – to już wiemy. Co jednak odpowiada za wyświetlanie pozostałych elementów?
- single.php – plik ten odpowiada za wyświetlanie pojedyńczych wpisów i jest wykrywany automatycznie;
- page.php - ten zaś plik wyświetla strony statyczne – również jest wykrywany automatycznie – dzięki takiemu podziałowi wygląd wpisów i stron może się różnić;
- 404.php – strona błędu – jeśli nie znaleziono strony bądź wpisu w bazie danych, ta właśnie strona będzie serwowana użytkownikowi;
- archive.php – kombajn – służy do wyświetla archiwum dla kategorii, tagów, autorów bądź dat;
- comments.php – plik odpowiada za wyświetlanie komentarzy oraz formularza dodawania komentarza, plik nie jest wykrywany automatycznie, musimy w kodzie
single.phpbądźpage.phpwstawić funkcjęcomments_template(); - footer.php – plik będący stopką strony, nie pełni innych funkcji, jest jednak elementem „porządkowym” – jeden plik dla całej strony. Wywołujemy go funkcją get_footer();
- functions.php – plik funkcji dodatkowych, w którym możemy zdefiniować Widgety, czy dodatkowe elementy dynamiczne naszego szablonu;
- header.php – nagłówek strony, podobnie jak
footer.phpstanowi element porządkowy, a wywoływany jest funkcjąget_header(); - search.php – działa podobnie jak
archive.php, odpowiedzialny jednak jest tylko za wyświetlanie wyszukiwanej treści; - sidebar.php – kolejny plik wywoływany przez funkcję, tym razem brzmiącą
get_sidebar()– odpowiada za wyświetlanie panelu bocznego; - author.php – to takie połączenie
page.phporazsingle.php– odpowiada za wyświetlanie strony autora i może zawierać treść dynamiczną (ostatnie wpisy) bądź np. biografię autora :);
Hierachia plików
Nasz blog może działać posiadając tylko pliki style.css oraz index.php – dzieje się tak dzięki hierarchi plików. Dla przykładu: wyświetlając archiwum dla danej kategorii, WordPress najpierw poszuka pliku archive.php, a jeśli go nie znajdzie, wyświetli treść w pliku index.php. Podobnie jest ze stronami – nie odnajdując page.php, WordPress poszuka single.php, a następnie index.php.
Kończąc powiem jeszcze, że dobrym zwyczajem jest, aby każdy z plików wyświetlających treść (page.php, single.php, index.php, archive.php, search.php itd.) powinien posiadać na górze funkcję get_header(), a na dole get_footer(), w odpowiednim zaś miejscu funkcję get_sidebar() – dzięki temu wszystko będzie pięknie działać. W kolejnej części zajmiemy się tworzeniem własnych szablonów stron oraz „zwidgetyzujemy” panel boczny!

ładne tylko ja w swoim szablonie mam takie coś i niewiem po co
comments-popup.php
searchform.php
attachment.php
Bardzo przyjaźnie do ogarnięcia jest w formie rysunku:
http://codex.wordpress.org/images/1/18/Template_Hierarchy.png
nie kłóćmy się, takie pierdoły to nie jest nic
Uhh, czemu oni to tak skomplikowali? ;-)
@Marcin, dzięki za linka.
Skomplikowali to dlatego, iż taki system umożliwia tworzenie bardzo, ale to bardzo dynamicznych i zróżnicowanych witryn.
Ok. A co, jeśli chcę wstawić dwa panele boczne, jeden po prawej, a drugi po lewej stronie? Jeden muszę wywołać standardowo, a do drugiego zrobić zwykłe include?
Tak, ale chyba logiczniej byłoby wstawienie obu przez zwykłego includa.
WP 3.0 wspiera nowy wygodny system budowania templatek jako boxy moze zrobic pliki sidebar-left.php oraz sidebar-right.php i wyswietlic je w templatce za pomoca funkcji get_template_part(’sidebar’,'left’); oraz get_template_part(’sidebar’,'right’);
Aha, dzięki. :)
W sumie myślałem, że da się to jakoś ładniej załatwić, ale to nic nie szkodzi. :)
@Nexik: Dzięki! Nie sądziłem, że nowa wersja WP przyniesie aż tyle nowości, które będą dla mnie przydatne. No bo np integracja z wersją WPMU – super, ale mi to i tak nie robi różnicy, bo nie używam. No a to to rozumiem… ;)
Bardzo dobry artykuł. Właśnie zaczynam zabawę z szablonami do WP i pomógł mi bardzo. Dzięki :)