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.

Hoe de del.icio.us links op je blog terechtkomen

  1. Del.icio.us stuurt een XML bericht met jouw links voor vandaag naar je blog.
  2. Wordpress verwerkt het XML bericht, maakt er een post van en slaat die op.
  3. Wordpress laat alle plugins aan bod komen die zich vastgehaakt hebben aan het save_post event, waaronder DDPF.
  4. 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 werking van de DDPF plugin

  1. De net opgeslagen post wordt opgehaald uit de database.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.


11 reacties

  1. Avatar van Steven Steven 18 Jan 2006 09:39

    Knap uitgewerkte toelichting, thanx

  2. Avatar van 8 Seconden » Hoe WordPress plugins werken 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! […]

  3. Avatar van Gigadesign, website maken, correct » Hoe Wordpress plugins werken Gigadesign, website maken, correct » Hoe Wordpress plugins werken 18 Jan 2006 22:21

    […] Kevin heeft dat eens allemaal voor ons uit de doeken gedaan. […]

  4. Avatar van Chris R. Chris R. 19 Jan 2006 22:05

    Knap werk kevin, duidelijk en zeer orderlijk in mekaargestoken, dat je er de tijd voor kunt vinden :)

  5. Avatar van Dietrich 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.

  6. Avatar van Kevin 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.

  7. Avatar van Blogsumer » Del.icio.us links van 30 januari 2006 Blogsumer » Del.icio.us links van 30 januari 2006 30 Jan 2006 21:41

    […] Hoe Wordpress plugins werken (tags: wordpress tutorial plugin howto) […]

  8. Avatar van Arno4all Arno4all 13 Jun 2006 23:15

    Duidelijk verhaal !

  9. Avatar van wim 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

  10. Avatar van Kevin 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.

  11. Avatar van HvVeld 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.