publikacja: 14 października 2008, 11:41; autor: Wojciech Usarzewicz http://wpninja.pl/pliki-szablonow-wordpressa-czesc-4-dzielimy-kod/

Pliki szablonów WordPressa – część 4 – Dzielimy kod

Pliki szablonów WordPressa – część 4 – Dzielimy kod

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.php bądź page.php wstawić 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.php stanowi 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.php oraz single.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)

  1. kavillock (14 października 2008, 12:19) #:

    ładne tylko ja w swoim szablonie mam takie coś i niewiem po co

    comments-popup.php
    searchform.php
    attachment.php

  2. Marcin (14 października 2008, 14:36) #:

    Bardzo przyjaźnie do ogarnięcia jest w formie rysunku:

    http://codex.wordpress.org/images/1/18/Template_Hierarchy.png

  3. Agahmemnon (14 października 2008, 19:29) #:

    nie kłóćmy się, takie pierdoły to nie jest nic

  4. Maciek (15 października 2008, 22:29) #:

    Uhh, czemu oni to tak skomplikowali? ;-)

    @Marcin, dzięki za linka.

  5. Wojciech Usarzewicz (16 października 2008, 15:34) #:

    Skomplikowali to dlatego, iż taki system umożliwia tworzenie bardzo, ale to bardzo dynamicznych i zróżnicowanych witryn.

  6. marsjaninzmarsa (17 czerwca 2010, 23:43) #:

    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?

  7. Szymon Skulimowski (17 czerwca 2010, 23:49) #:

    Tak, ale chyba logiczniej byłoby wstawienie obu przez zwykłego includa.

  8. Nexik (17 czerwca 2010, 23:55) #:

    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’);

  9. marsjaninzmarsa (17 czerwca 2010, 23:55) #:

    Aha, dzięki. :)

    W sumie myślałem, że da się to jakoś ładniej załatwić, ale to nic nie szkodzi. :)

  10. marsjaninzmarsa (17 czerwca 2010, 23:58) #:

    @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… ;)

  11. Drakee (6 lipca 2010, 3:27) #:

    Bardzo dobry artykuł. Właśnie zaczynam zabawę z szablonami do WP i pomógł mi bardzo. Dzięki :)

Dodaj własny komentarz