WordPress in ontwikkeling

Vorige week schreef mijn collega Bas over hoe wij gingen van steeds opnieuw de aanpak afstemmen, naar werken op een gestructureerde manier op basis van front-end componenten. Aansluitend daarop neem ik je mee in het ontwikkelproces van een thema in WordPress en het gebruik van de door Bas ontwikkelde front-end componenten.

Wat is een thema?

Een WordPress website kan niet zonder een thema, dit is namelijk verantwoordelijk voor zowel het ophalen als het weergeven van de gegevens die zijn toegevoegd in WordPress. Een WordPress installatie kan verschillende thema’s bevatten, hiervan maken wij er altijd één als maatwerk thema die specifiek wordt ontwikkeld voor een case of klant.

Hoe ontwikkelen wij een thema?

Een WordPress thema ontwikkel je door gebruik te maken van de zogenoemde template hiërarchie, deze bestaat uit bestanden met specifieke namen die elk hun eigen functie hebben binnen het thema. De standaard manier van themaontwikkeling is om HTML en PHP door elkaar te gebruiken, hierin worden de benodigde gegevens verzameld en weergegeven.

Wij moeten ook gebruik maken van deze bestanden, anders werkt het thema niet. Als uitbreiding op de standaard bestanden maken wij gebruik van Twig via de WordPress plugin Timber. Twig is een PHP-template engine en maakt het voor ons mogelijk om de logica en presentatie in een thema van elkaar te scheiden. In de PHP-bestanden vragen wij de benodigde gegevens op en prepareren deze waar nodig, om ze geschikt te maken voor weergave in de website. Vervolgens geven we de gegevens door aan de Timber render functie, deze maakt alle data beschikbaar in het Twig template.

Gutenberg

Met de komst van Gutenberg is de indeling van een website tussen de header en de footer eigenlijk volledig in te delen. In het verleden bepaalden wij welke weergaven er mogelijk waren op bepaalde pagina’s, die beperking is met Gutenberg weg. Dit zorgde er wel voor dat wij een andere manier van ontwikkelen moesten gaan hanteren om de data altijd op de juiste plaats beschikbaar te hebben als een Gutenberg blok wordt toegepast.

Met het gebruik van de Timber plugin en de mogelijkheid om templates te ontwikkelen met Twig kregen we niet alleen de mogelijkheid om de logica te scheiden van de presentatie, maar ook om vanuit de PHP-bestanden data mee te geven aan de Twig render functie. Iets dat ons met de standaard WordPress template parts niet lukte.

Front-end componenten

De volgende stap was de front-end componenten van collega Bas. We willen deze op één plaats houden in onze code, dat zorgt ervoor dat we op één plaats wijzigingen door kunnen voeren voor de hele website. Timber geeft ons de mogelijkheid om een extra namespace toe te voegen waarvandaan de front-end componenten kunnen worden ingelezen.

Aan mij is het dan nog de taak om:

  • De juiste bestanden aan te maken in het thema
  • De Gutenberg blokken aan te maken en de juiste front-end componenten in te laden
  • De data te prepareren en deze in het gedocumenteerde format door te geven aan het front-end component

We zorgen ervoor dat we met deze manier geen afhankelijkheid hebben van elkaars werk. Dit heeft als resultaat dat we beide kunnen ontwikkelen aan dezelfde website, zonder bij één van de disciplines het ontwikkelproces te vertragen. Dat bevordert aan beide kanten het werkplezier!

Corné Flikweert
Technologie