Reklama sponsora

3. Panel boczny – sidebar



Panel dodatkowy

WordPress oprócz nagłówka i stopki oferuje także panel dodatkowy, którzy może być na przykład panelem bocznym. Najczęściej wykorzystujemy ten panel aby umieścić w nim widgety oraz jakieś dodatkowe informacje czy reklamy, które w zasadzie najczęściej zawierają się także w widgetach. Konstrukcja jest całkiem prosta.

Jak umieścić sidebar?

Pierwszą rzeczą jaką robimy by stworzyć panel dodatkowy jest utworzenie nowego pliku w katalogu głównym naszego szablonu o nazwie sidebar.php. W tym pliku umieszczamy teraz napis <b>Panel boczny</b>. Teraz gdy już zapisaliśmy ten plik, otwieramy index php i pod napisem „Witaj świecie” a nad funkcją stopki (get_footer) umieszczamy funkcję

get_sidebar()

Spowoduje to wczytanie zawartości niedawno utworzonego pliku i wyświetlenie w oknie przeglądarki pogrubionego napisu „Panel boczny” gdzieś pomiędzy napisem witaj świecie a treścią naszej stopki. Możemy tam umieszczać dowolną treść, dowolny kod html, ale to by było niezbyt elastyczne i przejrzyste dla przeciętnego użytkownika dlatego też zdefiniujemy sobie w tym miejscu widgety.

Jak dodać widgety?

Podążając dalej za standardami WordPressa, aby zdefiniować miejsce na widgety tworzymy kolejny plik o nazwie functions.php jest to bardzo ważny plik ponieważ w nim umieszczamy kod związany z funkcjonalnością naszej strony. I tak właśnie w tym miejscu ustalamy sidebar. Aby to zrobić najpierw rejestrujemy „sidebar” wykorzystując w tym celu funkcję:

register_sidebar( $args );

Pobiera on kilka parametrów:

  • name – unikalna nazwa miejsca, która będzie później wyświetlana w panelu administratora.
  • id –  unikalny identyfikator tego miejsca, tylko małe litery, domyślnie jest to po prostu automatyczna liczba.
  • description – opis, na przykład pierwszy panel boczny (ogólnie sidebary można umieszczać praktycznie wszędzie, bardzo często zamieszcza się je także w stopce w celu dodania dodatkowego menu).
  • class – klasa css określająca wygląd tego miejsca
  • before_widget – kod umieszczany przed każdym widgetem. (często używamy frameworków lub w inny sposób okreslamy pojemniki na nasze widgety, ten parametr określa co znajdzie się przed widgetem.
  • after_widget – tak jak wyżej z tym że jest to kod umieszczany za widgetem (zazwyczaj selektory zamykające).
  • before_title – kod umieszczany przed tytułem widgetu.
  • after_title – kod umieszczany za tytułem widgetu

Powyższe parametry umieszczamy w tablicy asocjacyjnej, dają one spore możliwości aczkolwiek czasami to też zbyt mało ale możemy skorzystać z zaczepów i filtrów dzięki czemu w stosunkowo łatwy sposób można poszerzyć funkcjonalność jeszcze bardziej.

Aby zarejestrować sidebar, musimy umieścić tę definicję w fukcji, którą później dodamy zaczepimy. Więcej o zaczepach można przeczytać Tutaj. W tym przypadku wykorzystujemy zaczep widgets_init.

W naszym pliku functions.php umieszczamy następujący kod:


function zwp_init_widgets(){
$args = array(
'name' => 'Panel boczny',
'id' => 'identyfikator-panelu-bocznego',
'description' => 'Opis panelu bocznego powtarzającego się na różnych stronach',
'class' => '',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h3 class="widget_title">',
'after_title' => '</h3>' );
register_sidebar( $args );
}
add_action('widgets_init',"zwp_init_widgets");

Kolejnym krokiem jest wyświetlenie sidebara w odpowiednim miejscu. Tutaj warto sprawdzić wcześniej czy dany sidebar jest aktywny. Do tego celu wykorzystujemy funkcję:

is_active_sidebar( 'identyfikator sidebara' )

Powyższa funkcja zwraca prawdę gdy sidebar jest aktywny lub fałsz jesli nie jest aktywny. Umieszczamy tę funkcję w warunku a następnie jeśli sidebar jest aktywny wykorzystujemy funkcję do wyświetlania dynamicznych sidebarów. W tym celu wykorzystujemy funkcję:

dynamic_sidebar( 'identyfikator sidebara' );

która zwraca nam po kolei widgety dodane w kokpicie administratora. Teraz otwieramy nasz wcześniej utworzony plik sidebar.php i umieszczamy w nim następujący kod.

if( is_active_sidebar('identyfikator-panelu-bocznego')){
    dynamic_sidebar('identyfikator-panelu-bocznego');
}

No i to by było na tyle jeśli chodzi o kodowanie. Na razie efekt na stronie jest całkowicie niewidoczny i wygląda jak na obrazku poniżej:

wsnis1

Teraz przechodzimy do kokpitu. Wchodzimy w zakładkę Wygląd > Widgety , tam powinniśmy w tym momencie zobaczyć dodany panel boczny, do którego możemy dodawać kolejne widgety.

wspb1

W tym momencie dodajemy dwa chyba najczęściej wykorzystywane widgety czyli tekst oraz własne menu. W przypadku tekstu sprawa jest bardzo prosta, wpisujemy tytuł i treść i zapisujemy. Można tutaj także zaznaczyć aby WordPress sam robił akapity. Możemy wstawiać także kod html. Dzięki temu rozwiązaniu możemy w naszym szablonie raz zdefiniować panel a za każdym następnym razem edytować, dodawać lub usuwać elementy z poziomu kokpitu, co jest znacznie mniej skomplikowane i nie wymaga narzędzi. Jest to świetne rozwiązanie jeśli tworzymy strony na zlecenie, znacznie łatwiej jest wytłumaczyć klientowi jak zmienić tekst w kokpicie administratora niż jak to zrobić w kodzie.

wspb2

Kolejnym bardzo często używanym widgetem jest menu. Możemy tworzyć dowolną ilość menu i umieszczać je w dowolnych miejscach na stronie. Bardzo często menu główne umieszcza się gdzieś na górze strony a w stopce menu dodatkowe prowadzące do polityki prywatności regulaminów i innych podstron jak „o nas” czy kontakt. Na początku mamy dostepne menu 1, które wykorzystamy sobie w tym przykładzie.

wspb3

Po wybraniu zapisujemy w obu przypadkach i gotowe. Na ten moment efekt nie jest zbyt zachwycający, ponieważ nie określiliśmy jeszcze żadnych stylów.

wspb4

Podsumowanie

Dodawanie paneli i widgetów jest bardzo popularne przy tworzeniu szablonów i wykorzystuje się je praktycznie w każdym własnym szablonie. Szczególnie istotne jest to jeśli tworzymy stronę na zamówienie, wówczas należy zadbać aby strona była jak najbardziej elastyczna a zarazem aby jej obsługa była jak najprostsza. Aby dodać panel z widgetami wystarczy wykonać następujący algorytm:

  • Utworzyć plik functions.php
  • Umieścić w nim funkcję z rejestracją sidebara a nastepnie zaczepić ją za pomocą zaczepu widget_init
  • Utworzyć plik sidebar.php
  • Umieścić w nim kod odpowiedzialny za wyświetlenie sidebara
  • Umieścić funkcję get_sidebar(); w pliku index.php lub gdziekolwiek indziej, gdzie chcemy wyświetlać widgety.
  • Dodać widgety w kokpicie administratora
  • Odświeżyć stronę 🙂

Pamiętaj: sidebary możesz dodawać nie tylko w pliku sidebar.php lecz w każdym miejscu na stronie gdzie ci pasuje. Warto jednak rejestrować wszystkie w tej samej funkcji zdefiniowanej w pliku functions.php

W kolejnej części nauczymy się dodawać style i skrypty do naszego szablonu.

Pobierz kod

 


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *