Własna wtyczka WordPress. Jak napisać plugin do WP część 2.

Własna wtyczka w WordPress. Jak stworzyć wtyczkę od postaw w WordPress – część 2. Czym się różnią akcje, od filtrów w WP ?

Dalsza część poradnika o tym jak stworzyć własną wtyczkę do WordPress’a. Przypomnę, że naszym zamierzeniem jest stworzenie wtyczki, która będzie dodawała newsy na stronie głównej, z wybranej kategorii. W tej części poradnika dowiecie się co to są akcje, oraz filtry i czym się od siebie różnią.

wordpress-podstawy-300x107 Własna wtyczka Wordpress. Jak napisać plugin do WP część 2.Źródło: flickr, mkhmarketing

Akcje, oraz filtry w WordPress – bez tajemnic !

Sukces WordPressa to między innymi modularna budowa, pozwalająca na modyfikację poszczególnych elementów bez wgłębiania się w olbrzymią ilość kodu. Wyobraźcie sobie dużą szafkę z szufladami i pod-szufladami, gdzie każda z szuflad jest opisana min.

  • nagłówek (tytuł, meta tagi itp..)
  • pojedynczy wpis (treść, informacje o autorze itp..)
  • stopka
  • …..

Chcąc wyświetlić tytuł strony WP otwiera szufladę nagłówek i sprawdza, co się w niej znajduje – a dokładniej szuka zarejestrowanych filtrów i akcji. Wtyczki, które tworzymy rejestrują nowe filtry i akcje, które są umieszczane w odpowiednich szufladach i „aktywowane” w odpowiednim momencie. Na każdym etapie wywoływane są odpowiednie hacki (zwane również zaczepami) – to właśnie sprawia, że nawet osoba nie potrafiąca zbyt dobrze programować odnajdzie się w tym środowisku – nie trzeba dłubać w kodzie, wystarczy aktywować odpowiedni „zaczep„.

WordPress – co to są filtry

W poprzednim przykładzie dodaliśmy do naszej pierwszej wtyczki filtr modyfikujący zawartość tekstu wyświetlanego w pojedynczych wpisach – wyglądało to mniej więcej tak:

 
add_filter('the_content', 'dodajTekst');

Jako parametr podajemy dwa argumenty – nazwę zaczepu (hacka), oraz nazwę funkcji, która będzie wykonywana na tym zaczepie.

Filtry są niejako pośrednikami pomiędzy tym co „wychodzi” z bazy danych, a tym co dostaje użytkownik. Innymi słowy filtr jak sama nazwa wskazuje, wybiera te rzeczy, które chcemy pokazać użytkownikowi – reasumując modyfikuje dane, które będą widoczne dla odbiorcy.

Załóżmy, że chcemy zmodyfikować tytuły wpisów wyświetlanych na naszej stronie – skorzystamy z zaczepu o nazwie the_title i stworzymy odpowiednią funkcję.

 
function zmienTytul($title){
return $title.' - najlepszy blog o tematyce IT ';
}
add_filter('the_title', 'zmienTytul');

Teraz, gdy WordPress będzie otwierał szufladę związaną z wyświetlaniem tytułu w postach, zobaczy że znajduje się tam nasz filtr i zmodyfikuje zawartość widoczną dla użytkownika – czyli do tytułu dopisze „najlepszy blog o tematyce IT”.

WordPress – co to są akcje ?

Akcje są bardzo podobne do filtrów, co zaraz zobaczycie – rejestracja akcji przebiega następująco:

  
add_action( 'nazwa_zaczepu', 'nazwa_funkcji' );

Budowa jest bardzo podobna – wręcz prawie identyczna ! Moglibyśmy zadać sobie pytanie – czym w takim razie różnią się akcje, od filtrów ….

Filtry otrzymują pewne dane na wejściu, które mogą przekształcić i zwrócić w zmienionej postaci. Akcje natomiast nie zwracają żadnego wyniku – ich zadaniem jest modyfikacja bazy danych, wyświetlenie czegoś, lub zmiana wyglądu. Różnica na początku może nie wydawać się zbyt duża – w praktyce zobaczycie, gdzie należy stosować akcję, a gdzie filtry – warto dodać, że niektóre rzeczy można wykonać zarówno za pomocą akcji, oraz filtru np. wyświetlenie tekstu na ekranie.

Skoro mieliśmy przykład filtra, to warto stworzyć coś w oparciu o akcję – będzie to prosty newsletter, który wyśle wiadomość e-mail do osób zainteresowanych informacją o pojawieniu się nowego wpisu na naszym blogu.

   
function wyslijEmail( $post_ID ) {
$adresy= 'przyjaciel1@przyklad.pl, przyjaciel2@przyklad.pl';
wp_mail( $adresy, "Pojawił się nowy wpis na blogu", 'Cześć, dodałem nowy wpis na blogu - blogkomputerowy.com.pl' );
return $post_ID;
}
add_action( 'publish_post', 'wyslijEmail' );

Jako zaczep podaliśmy publish_post, ponieważ chcemy aby funkcja wyslijEmail została uruchamiana w  momencie opublikowania nowego postu.

Skąd mam wiedzieć jakie są zaczepy (hooks) dla akcji, oraz filtrów ?

Nie musisz ich znać na pamięć – wszystko znajduje się w dokumentacji WordPressa. Z niektórych zaczepów korzysta się częściej, z innych rzadziej – od tego co będzie miała realizować twoja wtyczka, zależy to z jakiego zaczepu skorzystasz.

Polecam również zajrzeć na stronę Adama Browna, który skatalogował zbiór hacków w zależności od wersji WordPressa : http://adambrown.info/p/wp_hooks

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.