04 09 10 Rejestracja i użycie dynamicznych paneli w Wordpresie
WordPress posiada zaimplementowany koncept dynamicznych paneli.
Panele takie można traktować jako pojemniki, do których mamy możliwość
wrzucenia różnego rodzaju funkcjonalność definiowaną za pomocą kodu i ujęta w kontener jakim jest widżet.
Domyślnie motywy Wordpresa posiadają od jednego do kilkunastu zarejestrowanych dynamicznych paneli.
Widżet w przypadku WordPress to, jak już wspomniałem wyżej, pewna jednostkowa funkcjonalność ujęta w postaci kodu. W panelu administracyjnym mamy dostęp do zakładki Wygląd -> Widgety gdzie istnieją widżety taki jak: Archiwa, Kalendarz, Kategorie, RSS i kilkanaście innych.
Aby dynamiczny panel był widoczny na blogu, należy poczynić pewne przygotowania.
Po pierwsze należy upewnić się, że w zakłądce widżetów panelu administracyjnego są widoczne jakieś dynamiczne panele. Jeżeli, jest tam choć jeden, należy kliknąć na jego nagłówek, która to czynność otworzy kontener na widżety.
Drugim krokiem jest przeciągnięcie z sekcji z widżetami do wyżej nadminionego kontenera tych, które chcemy mieć w panelu.
Kolejność widżetów ustala się poprzez przeciąganie ich w obrębie kontenera.
Jeżeli nasz panel jest poprawnie zarejestrowany i włączony w motywie, wybrana funkcjonalność powinna pojawić się w panelu bocznym bloga.
Rejestracja dynamicznego panelu bocznego
Załóżmy, że mamy motyw, który nie posiada jeszcze żadngeo dynamicznego panelu bocznego.
Do rejestracji nowych paneli służy funkcja register_sidebar. Funkcja przyjmuje argumenty w postaci tablicy i są to:
name – definiuje nazwę panelu bocznego ( widoczna w nagłówku panelu )
id – unikalna nazwa, za pomocą której ten panel będzie identyfikowany pośród innych
description – opis panelu widoczny po jego otwarciu,
before_widget – znaczniki html wstawiane przed zawartością wyświetlaną przez każdy widżet w tym panelu
after_widget – znaczniki html dołączane do zawarotości każdego widżetu w tym panelu
before_title – znaczniki html wstawiane przed tytułem widżetu
after_title – znaczniki html wstawiane za tytułem widżetu
Aby więc zarejestrować pierwszy dynamiczny panel bocznym należy umieścić kod, który znajduej się poniżej w pliku functions.php
aktywengo motywu.
add_action( 'widgets_init', 'register_my_sidebar' );
function register_my_sidebar(){
register_sidebar(
array(
'name' => 'Mój dynamiczny panel',
'id' => 'my_dynamic_sidebar',
'description' => 'Moj dynamiczny panel boczny',
'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
'after_widget' => '</li>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
)
);
}
W tym momencie nowy panel boczny o nazwie "Mój dynamiczny panel" powinien być dostępny w zakładce Wygląd -> widgety panelu administracyjnego Wordpresa.
Aby panel był widoczny na naszych stronach należy go umiejscowić w którymś z plików motywu.
Dynamiczne panele wywołuje się z pomocą funkcji dynamic_sidebar,
która przyjmuje jeden argument tj. id lub nazwę panelu i zwraca prawdę jeżeli panel został odnaleziony lub fałsz w przeciwnym wypadku.
Aby więc wyświetlić panel zarejestrowany z pomocą akcji powyżej należy dodać kod jak poniżej w którymś z plików aktywnego motywu :
Dynamiczne panele w oddzielnych plikach motywu
Dynamiczne panele mogą być wyświetlane również z właściwych sobie plików, które rozpoczynających się od przedrostka sidebar-
W przypadku wyżej dodanego panelu nazwa pliku wyglądałaby jak następuje:
sidebar-my_dynamic_sidebar.php
Do wyświetlania paneli w Wordpresie służy funkcja get_sidebar, która gdy wywołana bez argumentów, włączy plik sidebar.php aktywnego motywu. Jeżeli argmentem jest nazwa panelu bocznego w postaci : sidebar-id_panelu, spróbuje ona włączyć plik o nazwie sidebar-id_panelu.php, który powinien znajdować się w katalogu głównym aktywnego motywu Wordpresa.
Załóżmy więc, że edytujemy plik index.php do którego chcemy włączyć nagłówek, stopkę i dynamiczny panel boczny o nazwie my_dynamic_sidebar. Możemy zrobić to jak następuje:
<?php get_header() ?>
<?php get_sidebar('sidebar-my_dynamic_sidebar') ?>
<?php get_footer() ?>
Podsumumy, w Wordpresie dynamiczne panele boczne są kontenerami na widżety.
Panele boczne rejestruje się za pomocą funkcji register_sidebar i włącza z pomocą funkcji get_sidebar.
Panel boczny może znajdować się we właściwym dla siebie pliku, który składa się z przedrostka sidebar- i identyfikatora dynamicznego panelu.
Więcej informacji o funkcjach omawianych w tym wpisie można znaleźć na stronach kodeksu Wordpresa (get_sidebar,register_sidebar,dynamic_sidebar).
Autor wpisu jest blogerem, programistą PHP, administratorem Linux oraz twórcą blogów
RSS Subskrybuj wpisy bloga