Veel te doen onder WordPress motorkap
Het zal de gebruiker van een gemiddelde weblog ontgaan, maar onder de motorkap van WordPress is veel te doen. Zoveel zelfs dat versie 3.2 op een enkele uitzondering na, vrijwel alleen verbeteringen brengt onder motorkap.
Al eerder deed ik een poging uit te leggen wat ‘Child Themes‘ zijn en welk nut ze hebben ten aanzien van het updaten van een complete site en binnen zogenaamde multisites. Dat laatste vergt al wat technische handelingen, die je goed moet voorbereiden, zowel voor wat betreft de te maken structuur van de sites en de achterliggende server instellingen.
Een ander stuk geavanceerde techniek is terug te vinden in de zogenaamde ‘action hooks’. Action hooks zijn – doorgaans kleine – stukjes programmatuur, die als het ware kunnen worden ‘ingebonden’ in de kern van WordPress. Daardoor vereisen action hooks inhoudelijke technische kennis. Meestal betreft dat PHP, soms SQL als er databasehandelingen gedaan moeten worden. Moeten actions hooks content op een lokatie plaatsen, dan is kennis van CSS ook noodzakelijk.
Action hooks zijn dus geen plugins, waarmee een compleet nieuwe functie aan WordPress kan worden toegevoegd. Action hooks bieden de mogelijkheden ‘iets’ te doen voor of na een standaard basisroutine binnen WordPress. Een voorbeeld:
add_action(‘pagelines_inside_top_carousel’, ’title_actueel’);
function title_actueel() {
echo ‘LUIT.nl berichten carousel’;
}
Verklaring:
add-action – de basis van het aanmaken van action hooks
(‘lokatie waar iets moet gebeuren’,’naam van de te maken functie’); – serieuze theme ontwikkelaars verschaffen hun eigen action hooks lijsten
function naam(){ – aanvang van de te ontwikkelen functie
echo – in dit geval slechts het neerzetten van een stukje tekst
} – einde routine
In dit geval betreft het een toevoeging van een stukje tekst op de berichten carousel van deze website die binnen het theme Platform Pro wordt aangeboden. ‘pagelines_inside_top_carousel’ is door de ontwikkelaars van Platform Pro gemaakt om ‘iets’ te doen aan de bovenzijde van de carousel. Een meer generiek voorbeeld zou kunnen zijn ‘wp_head’. Op basis van deze aanroep zou een hook gemaakt kunnen worden die iets doet in de header van een site. Dat zou bijvoorbeeld de aanroep kunnen zijn van bijvoorbeeld Google Analytics (dat wordt vaak door middel van een plugin gedaan die van dezelfde functie gebruik maakt), maar ook een CSS aanroep om iets aan de basis vormgeving te doen.
De basis van WordPress biedt dus al een hele reeks actions, waarop hooks kunnen worden ‘ingehaakt’. Maar ook theme ontwikkelaars voegen veelal specifieke actions toe, die alleen van toepassing zijn voor het gebruikte theme. Het is verstandig action hooks altijd te maken in een child theme, dan blijven ze bestaan wanneer het parent theme wordt ge-update.
Het bouwen van WordPress sites wordt complexer naarmate meer zaken worden gecombineerd, zoals:
– multisites met meerdere (child)themes
– veel verschillende plugins
– volledige integratie met BuddyPress en/of BBPress (erg theme afhankelijk)
– action hooks
– eigen CSS instellingen
Op het moment dat bovenstaande zaken allemaal worden toegepast, dan zal de vraag naar kennis en kunde ‘onder de motorkap’ aanwezig moeten zijn om binnen WordPress aan de gewenste functionaliteiten te kunnen voldoen. Maar ondanks die complexiteit blijft het gerechtvaardigd te stellen dat binnen WordPress voor 95-100% alles te bouwen is met een slimme integratie van bestaande componenten. Binnen andere omgevingen ligt dat percentage over het algemeen lager en is dus soms meer programmeerkennis nodig om het gewenste eindresultaat te bereiken.