» » WordPress: Schrijf uw eigen plugin, Deel 4

WordPress: Schrijf uw eigen plugin, Deel 4

Geplaatst in: Programmeren, Techniek | 0

WordPress: Een Kunst Database Plugin, Deel 4

In het vorige deel van deze serie hebben we laten zien hoe we de database structuur van de Kunst Database aanmaken wanneer de plugin wordt geactiveerd. We hebben dit toen gedaan met behulp van een eenvoudige register_activation_hook(__FILE__, ‘kdb_install’) functie aanroep en het initialiseren van de database tabellen in de kdb_install functie.

In deel 4 zullen we laten zien hoe we met behulp van WordPress tevens een API kunnen bouwen in onze plugin. Een API is, zoals vele programmeurs die dit lezen wel zullen weten, een manier om grotendeels ongestructureerde data van een website op te halen op een manier die zo gestructureerd is dat ook programma’s er eenvoudig gebruik van kunnen maken. De Kunst Database zal uitstekend geschikt zijn voor zo’n API. De plugin is weliswaar bedoeld om gebruikt te worden als gebruiker frontend op Knipoogje Kunst, echter we willen parallel tevens de mogelijkheid bieden om de data ter beschikking te stellen aan andere programmatuur zoals een mobiel app.

In dit deel gaan we tijdens het schrijven van deze blogpost tevens gebruik maken van de Elementor frontend editor. Dit stelt ons hopelijk in staat om nettere artikelen te schrijven.

Object Georienteerd

In dit deel van de serie gaan we tevens wat meer aandacht besteden aan OOP oftewel Object Oriented Programming.

Deze keuze is erg gerelateerd aan het integreren van de API. OOP is niets nieuws en we zullen het hier dan ook niet langdradig toelichten maar een korte opmerking omtrent deze keuze is op zijn plaats.

Objecten voorzien de programmeur van een abstractie laag die data zo goed mogelijk scheidt van de implementatie. Een voorbeeld van het gebruik van de data is de API, terwijl een voorbeeld van het gebruik van de implementatie is de HTML ‘view’ op de data zoals die op de Knipoogje Kunst site gebruikt zal worden.

 

Object Oriented

WordPress API

We hebben bovenstaande video bijgevoegd hoewel we hem niet zelf geproduceerd hebben. We zijn in de toekomst wel voornemens om onze eigen video clips te produceren, met name voor Knipoogje Kunst. De video van Online School is erg illustratief en toont goed waarom we eigenlijk onze eigen API endpoints willen toevoegen voor de Kunst Database. Tevens is dit artikel een soort tryout voor ons om ons meer te verdiepen in de mogelijkheden van de Elementor editor.

Sommigen van de API functie die we hieronder zullen bespreken kunt u alleen benutten als u een account heeft op 3DN. Hiernaast kunt u zich inschrijven bij de 3DN Technologie mailinglijst. Hiermee verkrijgt u automatisch een 3DN login die u kunt gebruiken voor het testen van hieronder besproken functies.

Inschrijven voor 3DN Technologie

Niet Actief

Hier willen we eigenlijk een handigere manier laten zien om te registreren als gebruiker van 3DN.

We hebben namelijk ook recent een methode aangemaakt op onze site om direct met uw linkedin account te kunnen registreren. Echter, hoewel de Elementor editor enorm indrukwekkend is, is het kennelijk niet direct mogelijk om ALLE widgets in een Elementor kolom toe te voegen. We laten deze ruimte hierom bewust nog even vrij.

Wanneer u toch alvast met uw linkedin account wilt registreren kunt u echter altijd naar ons (nu nog) standaard registratie pagina gaan.

Registreren met Linkedin

API Code

We hebben onze code grotendeels gebaseerd op de al bestaande Akismet plugin. Akismet is een standaard plugin die bij iedere installatie van WordPress meegeleverd word. De Akismet plugin heeft de OOP objecten verdeeld in afzonderlijke bestanden:

  • class.akismet-admin.php
  • class.akismet-cli.php
  • class.akismet.php
  • class.akismet-rest-api.php
  • class.akismet-widget.php

We zien aan de naamgeving van deze bestanden al goed wat de beoogde functie is. Voor ons is op dit moment uiteraard class.akismet-rest-api.php van belang. Dit bestand word gebruikt middels:

<br />require_once( AKISMET__PLUGIN_DIR . 'class.akismet-rest-api.php' );<br />

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *