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
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 :).

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 ?
@rek: myślę, że pomoże Ci w tym Lorelle: http://lorelle.wordpress.com/2007/09/06/using-wordpress-categories-to-style-posts/
Z tego co rozumiem to definiuje wygląd danych kategorii dla wpisów za pomocą css ?
Dokładnie.
Działa, dziękuje pięknie !!!
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 ?
@ferus,
Trzeba ręcznie zaimplementować skrypt phpThumb.
Dzięki wielkie, zaraz sprawdzę.
Okej – dobrze, że znam PHP.
Jednak zapytam się o teorię – w jaki sposób zaimplementować to do kodu wordpressa?
Spokojnie, pracuję nad wyczerpującą instrukcją implementacji, wpis jest na dniach :)
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.. :)
@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. :)
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.
Wystarczy na jej początku dać:
gdzie 43 będzie id kategorii, którą chcesz pokazać.
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?
Najprościej? Korzystać po prostu ze stron kategorii :-).
Nie bardzo rozumiem. Czy mógłbyś to bardziej rozwinąć?
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).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
Prawdę mówiąc to u mnie (Firefox i IE) grafiki wyglądają jednakowo.
Jak dla mnei to na razie bezużyteczne teksty.
dzięki, właśnie tego szukałem :)
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.