
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!
Komentarze (11)
ładne tylko ja w swoim szablonie mam takie coś i niewiem po co
comments-popup.php
odpowiedzsearchform.php
attachment.php
Bardzo przyjaźnie do ogarnięcia jest w formie rysunku:
http://codex.wordpress.org/images/1/18/Template_Hierarchy.png
odpowiedznie kłóćmy się, takie pierdoły to nie jest nic
odpowiedzUhh, czemu oni to tak skomplikowali? ;-)
@Marcin, dzięki za linka.
odpowiedzSkomplikowali to dlatego, iż taki system umożliwia tworzenie bardzo, ale to bardzo dynamicznych i zróżnicowanych witryn.
odpowiedzOk. 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?
odpowiedzTak, ale chyba logiczniej byłoby wstawienie obu przez zwykłego includa.
odpowiedzWP 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’);
odpowiedzAha, dzięki. :)
W sumie myślałem, że da się to jakoś ładniej załatwić, ale to nic nie szkodzi. :)
odpowiedz@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… ;)
odpowiedzBardzo dobry artykuł. Właśnie zaczynam zabawę z szablonami do WP i pomógł mi bardzo. Dzięki :)
odpowiedzDodaj własny komentarz
Odnośniki z innych stron (1)
Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:
[…] Pliki szablonów WordPressa – część 4 – Dzielimy kod – wpninja.pl […]