publikacja: 23 października 2008, 10:32; autor: Wojciech Usarzewicz http://wpninja.pl/pliki-szablonow-wordpressa-czesc-5-wlasne-szablony-i-panel-boczny/

Pliki szablonów WordPressa – część 5 – Własne szablony i panel boczny

Pliki szablonów WordPressa – część 5 – Własne szablony i panel boczny

Dzisiaj trochę pokodujemy (mam nadzieję, że skutecznie zarażam was miłością do rozkminiania mechaniki WordPressa), stworzymy własny szablon dla strony, nauczymy się tworzyć sekcje Widgetów, a przede wszystkim – nauczymy się korzystać z tych sekcji. Przygotujcie więc swoje ulubione programy do kodowania i bierzmy się do pracy :).

Własny szablon strony

Szablon Strony

Szablon Strony

Po lewej stronie widzimy sekcję wyboru szablonu strony – czym jest taki szablon? Generalnie jest to kolejny plik w folderze naszego tematu graficznego, który pozwala nam na wyświetlenie strony statycznej w unikalny sposób. Banalnym przykładem będzie strona z formularzem kontaktowym – możemy chociażby usunąć z niej panel boczny, umieścić twiordyj kod zamiast jakiejś wymyślnej funkcji itp. :).

Użycie szablonów jest bardzo proste – po stworzeniu strony, a przed publikacją wybieramy z przedstawionej na obrazku listy nazwę naszego szablonu. Wpierw musimy go jednak stworzyć. Tworzymy pusty plik *.php, a następnie wstawiamy do niego kod:

<?php
/*
Template Name: Kontakt
*/
?>

Voila – dzięki temu na naszej liście rozwijanej pojawi się pozycja „Kontakt”. Cała pozostała zawartość szablonu to już wasza inwencja. Teraz zajmijmy się prawdziwą zabawą – widgetami!

Budujemy sekcję widgetów

W tym celu musimy otworzyć plik functions.php, znajdujący się w folderze naszego tematu graficznego. Póki co jest on zapewne pusty, musimy więc wstawić odpowiedni kod:

if ( function_exists('register_sidebar') )
    register_sidebar(array(
        'name'=>'sidebar_home',
        'before_widget' => '<div class="box %1$s">',
        'after_widget' => '</div>',
        'before_title' => '<h2>',
        'after_title' => '</h2>',
    ));

A teraz objaśnienia. pierwsza funkcja jest formalnością, następna register_sidebar() rejestruje sekcję widgetów. Niech was nie zmyli nazwa sidebar, sekcję widgetów tylko na panelu bocznym to przeszłość ;). Jak widzimy, parametry dla tej funkcji mają postać tablicy (array). Po kolei – name określa nazwę sekcji, before_widget określa znacznik html znajdujący się przed widgetem (w tym przypadku jest do DIV o klasie .box). %1$s zaś wstawi do klasy nazwę określonego widgeta. after_widget wstawia znacznik kończący widget, before_title otwiera nazwę widgeta, a after_title zamyka nazwę widgeta. Uff…

Wyświetlamy sekcję widgetów

Skoro już zbudowaliśmy sekcję naszych widgetów, musimy ją wyświetlić. Otwieramy odpowiedni plik tematu, ot choćby taki sidebar.php i wstawiamy odpowiedni kod:

<? if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar_home') ) : ?>
// Tutaj ewentualny kod;
<? endif; ?>

Zauważyliście zapewne nazwę sidebar_home – odpowiada ona za wyświetlenie odpowiedniego widgeta. Korzystając dalej z funkcji register_sidebar(), zmieniając tylko parametr name, jesteśmy w stanie zbudować całą masę różnych sekcji, które będą wyświetlane w różnych miejscach na stronie.

W środku instrukcji warunkowej możemy wstawić zaś określony kod, który będzie wyświetlany w przypadku, gdy żaden widget nie zostanie przypisany do sekcji z panelu zarządzania. Wnikliwsi pewnie już zauważyli, że powyższy kod nie tyle wyświetla naszą sekcję widgetów, co upewnia się, że nie powinna ona być wyświetlana ;). Nie jest to jednak aż tak ważne, bowiem wszystko działa.

Podsumowanie

Wiecie już jak stworzyć własny szablon strony, jak utworzyć dowolną ilość sekcji widgetów i jak wyświetlić poszczególne sekcje w dowolnym miejscu witryny. Byle tak dalej :).

Komentarze (23)

  1. rek (29 października 2008, 22:13) #:

    Witam !

    Szablony stron statycznych są dla mnie jasne jak słońce, ale jak zrobić żeby mieć róży wygląd kategorii wpisów (nie stron statycznych). Np. Mam kategorie ROWER i chciałbym, że wpisy w tej kategorii wyglądały inaczej niż np w kategorii ZNAJOMI. Różnice mogły by polegać np: innym kolorze nagłówków lub innym obramowaniu fotki, innym rodzaju czcionki itp.

    Jest na to jakiś sposób ?

  2. Adam Klimowski (29 października 2008, 22:30) #:

    @rek: myślę, że pomoże Ci w tym Lorelle: http://lorelle.wordpress.com/2007/09/06/using-wordpress-categories-to-style-posts/

  3. rek (29 października 2008, 23:03) #:

    Z tego co rozumiem to definiuje wygląd danych kategorii dla wpisów za pomocą css ?

  4. Szymon Skulimowski (1 listopada 2008, 17:13) #:

    Dokładnie.

  5. rek (8 listopada 2008, 1:03) #:

    Działa, dziękuje pięknie !!!

  6. ferus (23 listopada 2008, 13:55) #:

    Witam – jaki plugin należy zainstalować i skonfigurować lub co należy zrobić – aby posiadać miniaturki graficzne posta przy poście – tak jak w przypadku postow na wpninja.pl ?

  7. Szymon Skulimowski (23 listopada 2008, 14:03) #:

    @ferus,
    Trzeba ręcznie zaimplementować skrypt phpThumb.

  8. ferus (23 listopada 2008, 14:08) #:

    Dzięki wielkie, zaraz sprawdzę.

  9. ferus (23 listopada 2008, 14:13) #:

    Okej – dobrze, że znam PHP.
    Jednak zapytam się o teorię – w jaki sposób zaimplementować to do kodu wordpressa?

  10. Wojciech Usarzewicz (23 listopada 2008, 14:22) #:

    Spokojnie, pracuję nad wyczerpującą instrukcją implementacji, wpis jest na dniach :)

  11. ferus (23 listopada 2008, 14:30) #:

    Jeśli byłaby możliwość jednak skontaktować się z Tobą, ponieważ planuję zakodować szablon do końca już dziś i generalnie troszeczkę mnie to stopuje.. :)

  12. ferus (26 listopada 2008, 21:44) #:

    @Wojciech Usarzewicz:
    Nie chcę być niegrzeczny, spytam tylko jak długo będzie nam dane jeszcze czekać, i nie mówię tylko w swojej osobie. :)

  13. Antec (20 grudnia 2008, 17:50) #:

    Witam! A jak ma wyglądać szablon strony statycznej, w którym będą wyświetlane tylko posty (tak samo jak na stronie głównej) z jednej wybranej kategorii? Z góry dzięki za pomoc.

  14. Szymon Skulimowski (22 grudnia 2008, 9:15) #:

    Wystarczy na jej początku dać:

    <?php query_posts('cat=43'); ?>

    gdzie 43 będzie id kategorii, którą chcesz pokazać.

  15. Antec (22 grudnia 2008, 16:25) #:

    Szymon dzięki za odpowiedź. Ta funkcja rzeczywiście działa. Z tym, że nie do końca. Bo gdy w kategorii której wpisy chcę wyświetlić na stronie statycznej nie działa podział na strony. Nawet gdy ręcznie wpiszę adres URL kolejnej strony z kategorii, to i tak cały czas pokazuje mi to samo. Masz może na to jakieś rozwiązanie?

  16. Szymon Skulimowski (22 grudnia 2008, 20:21) #:

    Masz może na to jakieś rozwiązanie?

    Najprościej? Korzystać po prostu ze stron kategorii :-).

  17. Antec (22 grudnia 2008, 20:42) #:

    Nie bardzo rozumiem. Czy mógłbyś to bardziej rozwinąć?

  18. Szymon Skulimowski (22 grudnia 2008, 20:55) #:

    Np. strona kategorii „podcasty” z Twojego bloga. Jedynym ograniczeniem może być brak swobody z formie odnośnika, który musi być poprzedzony odpowiednim oznaczeniem (standardowo category, do zmiany na inny w panelu administracyjnym).

  19. ferus (8 stycznia 2009, 19:25) #:

    Witam, mam kolejny problem, który trudno mi jest rozgryźć.
    Otóż na moim blogu który cały czas jest w trakcie tworzenia, pojawił się problem z grafiką.
    W IE i Operze jakość grafiki jest poprawna, wszystko wyświetla się w prawidłowo.
    A w Firefoxie – grafika wygląda jakby ktoś ją celowo rozmazał (na bokach) – mówię o pliku logo oraz moim zdjęciu po lewej stronie bloga.
    Czy ktoś napotkał taki problem, i jakie może być jego ew. rozwiązanie?
    Pozdrawiam

  20. Szymon Skulimowski (12 stycznia 2009, 16:49) #:

    Prawdę mówiąc to u mnie (Firefox i IE) grafiki wyglądają jednakowo.

  21. Greg (14 lutego 2009, 18:28) #:

    Jak dla mnei to na razie bezużyteczne teksty.

  22. marsjaninzmarsa (13 maja 2009, 16:47) #:

    dzięki, właśnie tego szukałem :)

  23. groobcio (31 października 2009, 15:25) #:

    Hej, czy jest sposób aby wyświetlić kategorie należące do konkretnej kategorii nadrzędnej ? Mam 2 kategorie nadrzędne i chciałbym, aby osobno wyświetlać stronkę z podkategoriami jednej kategori nadrzędnej i osobno z podkategoriami drugiej kategorii nadrzędnej.

Dodaj własny komentarz

Odnośniki z innych stron (3)

Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:

  1. Miniatury w locie czyli phpThumb() w akcji

    [...] jednym z komentarzy na WPNinja pojawiło się pytanie: (…) jaki plugin należy zainstalować [...]

  2. Krótkie podsumowanie: kwiecień 2009

    [...] Pliki szablonów WordPressa – część 5 – Własne szablony i panel boczny Dzisiaj trochę pokodujemy (mam nadzieję, że skutecznie zarażam was miłością do rozkminiania mechaniki WordPressa), stworzymy własny szablon dla strony, nauczymy się tworzyć sekcje Widgetów, a przede wszystkim – nauczymy się korzystać z tych sekcji. Przygotujcie więc swoje ulubione programy do kodowania i bierzmy się do pracy :). [...]

  3. Krótkie podsumowanie: maj/czerwiec 2009

    [...] Pliki szablonów WordPressa – część 5 – Własne szablony i panel boczny Dzisiaj trochę pokodhttp://wpninja.pl/wp/wp-admin/index.phpujemy (mam nadzieję, że skutecznie zarażam was miłością do rozkminiania mechaniki WordPressa), stworzymy własny szablon dla strony, nauczymy się tworzyć sekcje Widgetów, a przede wszystkim – nauczymy się korzystać z tych sekcji. Przygotujcie więc swoje ulubione programy do kodowania i bierzmy się do pracy :). [...]