Ostatnio miałem ciekawe zlecenie, miałem za zadanie napisać agregator newsów, oparty na stronach wordpress’a tworzonych w opcji multisite. Postanowiłem więc zabrać się za napisanie do tego celu małego pluginu. I choć szczerze mówiąc słowo plugin nigdy jakoś na mnie dobrze nie działało, to zabawa we „wtyczkowanie” wordpressa była naprawdę przyjemna.
Pisanie samego pluginu jest dość proste, wystarczy do tego celu znać PHP’a i mieć opanowane podstawowe zasady tworzenia plugnów. Zacznijmy od ustawień. Wszystkie pluginy jakich używamy powinny się znajdować w katalogu wp-content/plugins. W zależności od tego jak bardzo złożony będzie nasz program możemy stworzyć katalog i nazwać tak samo plik znajdujący się w nim, który będzie dla nas czymś w rodzaju dispatchera, lub po prostu stworzyć plik php w którym będzie nasz kod.
W zależności od tego jakiej opcji użyliśmy w pliku startowym kilka pierwszych linijek powinno wyglądać w ten sposób:
<?php /** * @package Nazwa paczki * @version 0.1 */ /* Plugin Name: Nazwa pluginu Description: Opis, czyli czym twój plugin będzie się zajmował Author: Twoje Imię i Nazwisko Version: 0.1 */ ?>
Kodu tłumaczyć chyba nie trzeba, nazwa paczki, opis, twoje imię i nazwisko no i wersja pluginu to wszystko czego potrzebujemy. Więcej informacji na ten temat można znaleźć w opisie z dokumentacji wordpress. Od tej pory plugin (jeśli znajduje się w katalogu wordpressa) powinien być widoczny we wtyczkach. Wszystko bardzo fajnie tylko… No właśnie, tak naprawdę nasz plugin nic jeszcze nie robi
Działanie pluginu polega na wywoływaniu funkcji naszego kodu w wywołanych przez Ciebie miejscach. I tak, żeby zadeklarować jakieś działanie, musimy użyć za każdym razem funkcji add_action. Pisząc na końcu w naszym kodzie np. add_action(‘loop_end’, ‘nazwa_naszej_funkcji’); wywołamy zaraz po akcji loop_end (czyli pod koniec wypisywania treści postów / strony) funkcję o nazwie nazwa_naszej_funkcji. Wszystko jak widać jest dość proste i wystarczą tak naprawdę podstawy PHP by napisać prosty plugin. Wszystkie akcje jakie możemy wywołać, a jest ich dość sporo, znajdziemy w dokumentacji.
Nie należy też zapominać o bazie danych. W wordpress za bazę danych odpowiada zmienna globalna $wpdb, którą w każdej funkcji wystarczy wywołać za pomocą global $wpdb; Nie mam jednak zamiaru rozpisywać się na ten temat za dużo, bo całość została pięknie opisana w dokumentacji do której odsyłam was po raz setny, a to dlatego że nie tylko są to oficjalne informacje, ale też dlatego że wordpress codex jest pisany bardzo prostym i przejrzystym językiem, pomimo że angielskim.
Życzę wszystkim szybkiego, lekkiego i przyjemnego pisania waszych własnych pluginów. To naprawdę proste
Jako że NNplaya zawsze był przekonujący postanowiłem nieco rozszerzyć ten artykuł. Chcecie napisać plugin do wordpress’a? No to zaczynamy
Na początek przygotujmy sobie worpdpressa. Najnowszą wersję można pobrać na wordpress.org, niedawno wyszła wersja 3 więc warto się z nią zapoznać.
Nasz plugin do wordpress’a będzie wyświetlał w stopce, dokładną datę w unix. Niby nic takiego, ale zależy nam na tym żeby można było zrobić coś na szybko, by zabrać się do pracy z własnym pluginem.
Jak mówiłem w poprzednim poście, aby zacząć należy utworzyć odpowiednie komentarze na górze. Myślę że każdy to rozumie, dlatego od razu robimy krok do przodu. Trzaba sprawdzić jaka akcja wyświetli nam funkcję w stopce. Jak widać po dokumentacji będzie to add_action(‘wp_footer’, ‘wp_footer_plugn’);
Teraz wystarczy stworzyć funkcję:
function wp_footer_plugn()
{
echo time();
}
A w naszym wordpressie wyświetli się czas unixowy. To tyle. Proste i szybkie


#1 by NNPlaya on 20 sierpnia 2010 - 11:21
Bardzo ciekawa zajawka artykułu. Chętnie zobaczyłbym prosty przykład takiego pluginu, który coś konkretnego robi, lub chociaż udaje. To z pewnością byłoby bardziej przekonujące, niż słowa ‘to naprawdę łatwe’.
#2 by Warchol on 13 października 2010 - 18:20
No nie powiem, żeby było tu dużo tego. To raczej zachęta do przeczytania sobie samemu dokumentacji.
#3 by MWL on 14 października 2010 - 9:08
@Warchol masz rację, ale niebawem umieszczę obszerny artykuł prosto z SDJ
Pingback: Dużo śmieci « MWL Blog
#4 by Logos on 21 marca 2011 - 9:08
Trochę czasu zajęło mi ogarnięcie tego, ale nie jest tak źle;] Zacząłem w sumie od przepisania gotowej wtyczki. Oto co mi wyszło http://log-this.com/2011/01/wordpress-plugin-zajawki-postow/
Plugin do automatycznego ucinania postów na stronie głównej po x znakach lub słowach.