Hoe Wordpress plugins werken
De plugin architectuur van Wordpress laat toe om functionaliteit toe te voegen aan je blog zonder de core Wordpress code onder handen te moeten nemen. Als je van plan bent dit te doen is een inleiding tot het schrijven van plugins voor Wordpress waarschijnlijk welgekomen.
Een definitie
Het aantal Wordpress plugins dat je kan gebruiken is langzamerhand niet meer te overzien. Elk van deze plugins zorgt ervoor dat je Wordpress blog over wat extra mogelijkheden beschikt. De plugins kan je onderbrengen in 2 categorieën: de active plugins en de passieve plugins.
Passieve plugins activeer je in je Wordpress admin, waarna je hier of daar wat code toevoegt aan je template. Een voorbeeld van een passieve plugin is Brian’s Latest Comments. Als je deze plugin activeert kan je door het toevoegen van een stukje code de meest recente reacties op je blog tevoorschijn toveren. Maar jij moet dus nog wat doen.
Actieve plugins daarentegen zijn wat zelfstandiger. Je activeert ze, configureert ze indien nodig en laat ze daarna gewoon hun werk doen. Voorbeelden van actieve plugins zijn Bad Behaviour en Delicious Daily Posting Formatter (DDPF). De Bad Behaviour plugin komt in actie wanneer een reactie wordt geplaatst, de DDPF plugin komt in actie wanneer del.icio.us besluit om jouw links op je weblog te posten.
Arrrrr!
Actieve plugins maken gebruik van de zogenoemde haken binnen Wordpress. Ze haken zich vast aan één of meerdere gebeurtenissen (of events), zoals het opslaan van een bericht of reactie en het publiceren van een bericht.
De DDPF plugin haakt zich vast aan 3 events:
on_activation
admin_menu
save_post
Door zich vast te haken aan het on_activation
event kan de plugin ervoor zorgen dat bepaalde dingen worden klaargemaakt voor het gebruik van de plugin. Bijvoorbeeld het opslaan van de standaardeigenschappen van de plugin in de database. Het admin_menu
event laat toe om een pagina toe te voegen aan de Wordpress administratiesectie zodat gebruikers de plugin gemakkelijk kunnen configureren. Het save_post
event tenslotte, zorgt ervoor dat bepaalde code wordt uitgevoerd op het moment dat een bericht wordt opgeslagen.
Het triggeren van het event
De belangrijkste code van de DDPF plugin wordt uitgevoerd bij het opslaan van een bericht.
- Del.icio.us stuurt een XML bericht met jouw links voor vandaag naar je blog.
- Wordpress verwerkt het XML bericht, maakt er een post van en slaat die op.
- Wordpress laat alle plugins aan bod komen die zich vastgehaakt hebben aan het
save_post
event, waaronder DDPF. - Nadat de plugins hun werk hebben gedaan wordt de post gepubliceerd.
Binnenin
De plugin gaat zoals gezegd een stuk code uitvoeren die het net opgeslagen bericht moet formatteren naar de wensen van de gebruiker.
- De net opgeslagen post wordt opgehaald uit de database.
- Er wordt nagegaan of de post een del.icio.us daily posting is. Dit gebeurt aan de hand van de titel die bij del.icio.us daily posting het stramien "links for yyyy-mm-dd" volgt, waarbij yyyy een jaartal is, mm een maand en dd een dag.
- Er zijn 2 mogelijkheden: de post komt niet van del.icio.us, dus is de rol van de plugin uitgespeeld en moet er verder niets meer gedaan worden, of de post komt wel van del.icio.us. In dit geval kunnen we verder met de volgende stap.
- De post wordt geparset door de parser. Dit wil zeggen dat alle subelementen uit de post worden gehaald. De subelementen van een del.icio.us post zijn de bookmarks, die op hun beurt weer bestaan uit een URL, een titel, een beschrijving en één of meerdere tags. Een tag bestaat uit een URL en een titel.
- De subelementen die de parser verzameld heeft, worden meegegeven aan de formatter die deze objecten zal gebruiken om een post samen te stellen die voldoet aan de wensen van de gebruiker. Dit gebeurt door de placeholders te vervangen door de overeenkomstige waarden uit de post.
- De resulterende post wordt opgeslagen in de database.
Als je nu echt nog meer wilt weten over de DDPF plugin, of Wordpress plugins in het algemeen, raad ik je aan om rustig de code te bestuderen.
Dit artikel werd opgenomen in ontwikkeling, software, weblogs.
Steven 18 Jan 2006 09:39
Knap uitgewerkte toelichting, thanx
8 Seconden » Hoe WordPress plugins werken 18 Jan 2006 21:34
[…] In onze gloednieuwe categorie “Geektalk”, een uitmuntende voorstelling van hoe WordPress plugins werken. Uitstekend werk, Kevin! […]
Gigadesign, website maken, correct » Hoe Wordpress plugins werken 18 Jan 2006 22:21
[…] Kevin heeft dat eens allemaal voor ons uit de doeken gedaan. […]
Chris R. 19 Jan 2006 22:05
Knap werk kevin, duidelijk en zeer orderlijk in mekaargestoken, dat je er de tijd voor kunt vinden :)
Dietrich 24 Jan 2006 20:09
Mooie weergave, maar ik mis nog wat uitgebreide info over het plugin-systeem. Langs de andere kant een goede uitleg van hoe een hooks-systeem werkt.
Kevin 24 Jan 2006 20:27
Voor uitgebreide info over het Wordpress plugin-systeem moet je bij de Wordpress Codex (de eerste link uit het artikel) of de Wordpress code zijn. Ik zou zelfs aanraden om op dit moment direct in de code te duiken en een search te doen op
apply_filter
in de Wordpress files. De uitleg op de codex en op de sites die er genoemd worden laat nog wat te wensen over.Verder is het hooks-systeem de basis van het plugin-systeem, dus ik zie niet in wat ik heb gemist zonder in te specifieke details te treden.
Blogsumer » Del.icio.us links van 30 januari 2006 30 Jan 2006 21:41
[…] Hoe Wordpress plugins werken (tags: wordpress tutorial plugin howto) […]
Arno4all 13 Jun 2006 23:15
Duidelijk verhaal !
wim 01 Oct 2006 01:29
hallo wie kan mij helpen,
ik heb behoorlijk wat subpagina’s in de zoekmachine staan, maar door deze vele links komen de gebruikers niet meer op mijn rootpagina terecht, is er een plugin die als gebruikers binnen komen via een sub . direct op min root terecht komen,. ik dacht dat het wel mogelijk zou zijn met ht.acces maar ik heb nergens iets gevonden? wie o wie heeft een oplossing mailen graaf op info@soar.nl
Kevin 01 Oct 2006 10:50
Het is mogelijk om met een .htaccess bestand bezoekers te forwarden naar andere pagina’s: Rewrite opties voor Apache 1.3.
HvVeld 01 Sep 2009 00:44
Let goed op voordat je plugins installeert in Wordpress. Op http://remcobressers.nl/2009/09/wordpressmobile-mobi-is-spyware/ staat bijvoorbeeld een artikel over spyware in een Wordpress plugin.