WordCamp 2016 - Theming (voor beginners)

Door op | in Weblog

De volgende presentatie die we bijwonen is die van Theming in WordPress. Edmnud Turmin neemt ons mee in de (basis) van WordPress. Qua niveau is het voor beginners, maar voor de volledigheid vind je hieronder de uitleg die we van Edmund hebben ontvangen. Edmund geeft aan dat er voor de beginnende ontwikkelaar een aantal mogelijkheden zijn voor het ontwikkelen van een WordPress thema.

  • - Starters theme
  • - Child-theme
  • - Framework

Voordat hij de voordelen van de verschillende manieren uitlegt, krijgen we de informatie over wat een theme uiteindelijk inhoudt, welke drie bestanden hierin verplicht zijn en waar deze inhoudelijk uit bestaan.

  • - Stylesheet. Bestaat uit meta informatie en bepaalt de opmaak van de site.
  • - Template bestanden - bepalen wat waar staat en bestaan veelal uit html & basis php
  • - functions.php - Voor het inladen en enquen van script. Volgens de WP Standards en veelal PHP

Starter themes

Een starter theme is een thema dat volledig functioneert en feitelijk het fundament is voor je website. Er zit veel (vaak goede) bestaande code in en is beschikbaar in diverse layouts. Het is voor de beginnende ontwikkelaar ideaal, omdat veel code reeds beschikbaar is en je puur opmaak technisch te werk kunt gaan. Kies je een minimaal theme, dan kun je van daaruit verder bouwen. Wil je juist veel opties, dan kies je een uitgebreider starters theme en werk je vanuit daar verder. Het nadeel is dat je vanuit het thema zelf werkt en updaten dus niet mogelijk is, zonder daarbij je wijzigingen kwijt te raken.

Child-themes

Child-themes zijn vrijwel indentiek aan een starter theme, maar met het voordeel dat je wel kunt updaten. Je werkt als het ware bovenop het bestaande thema en vult deze aan met je eigen opmaak en andere bestanden. Doordat je in een "apart" thema werkt, kun je updates uitvoeren zonder dat jouw wijzigingen ongedaan worden gemaakt. We schreven overigens al eerder over het opbouwen van een child-theme, benieuwd hierna? Lees onze handleiding (klik)

Belangrijk bij een child-theme is dat alle parent templates standaard worden overgenomen, tenzij je ze in je child-theme plaatst. Alles in het child-theme krijgt prioriteit. Ieder bestand dat je dus plaatst, overruled het bestand uit het parent-theme. Plaats je dus een aangepaste page.php in jouw child-theme dan wordt die gebruikt en niet die van het parent-theme.

Houd er wel rekening mee dat dit bij functions iets anders gaat. Child-functions worden namelijk uitgevoerd vóór die van het parent-theme. Dit betekent niet dat ze de parent-functie overrulen, integendeel, want de parent-functie wordt ná de functie uit het child-theme uitgevoerd. Dat is dus de functie die daadwerkelijk uitgevoerd wordt. Wil je wel functies uit het parent-theme overrulen, dan kan dat bijvoorbeeld door de functie dezelfde naam te geven en te werken met een priority hoger dan de oorspronkelijke functie. Heeft de functie in het parent-theme en priority van 10, dan geef je die in het child-theme bijvoorbeeld priority 15. Je kunt ook altijd complete functies uitschakelen / verwijderen via remove_action();

Ben je een beginnend ontwikkelaar en niet helemaal thuis in child-themes? Dan is er natuurlijk ook nog een plugin om dit via een UI te realiseren: One-Click Child Theme

Framework

De derde optie die wordt aangehaald is een framework. De meest bekende en meest gebruikte frameworks hierin zijn:

  • - Headway (drag en drop opties)
  • - Genesis
  • - Themify

Het voordeel van frameworks is dat veel gebruikte handelingen en functies zijn meegenomen in het thema. Denk hierbij bijvoorbeeld aan paginanummering, sidebar selectors en andere kleine functies. Dit scheelt je onder andere in het onderhouden van plugins. Het voordeel van een framework is dat er veel thema's voor zijn ontwikkeld waar je op kunt voortborduren. Ook bij een framework kan dat in de vorm van een child-theme. Op deze manier kun je ook je framework zonder problemen blijven bijwerken en updaten, zonder dat je wijzigingen hierbij ongedaan worden gemaakt. Doordat frameworks veelal commercieel worden ingezet, kun je ook goede support verwachten en een continue doorontwikkeling.

Zelf bouwen

Niet besproken en ook niet direct voor beginnende ontwikkelaars, is de mogelijkheid van een 100% maatwerk thema. Je begint ook hier met de drie basisbestanden van een thema en werkt van daaruit naar je eigen thema toe. De manier waarop je een thema ontwikkelt, verschilt per persoon. Zo kun je HTML / CSS en PHP ineens combineren in je themafolder, maar je kunt ook vanuit beschikbare HTML en CSS je thema ontwikkelen.

Het voordeel van een maatwerk thema is dat deze geen updates hoeven door te voeren en dat scheelt in onderhoud. Maatwerk thema's hebben daarbij minder CSS en Javascript bestanden, althans, als het goed gedaan wordt. Dat is een voordeel in optimalisatie en scores in bijvoorbeeld Pingdom, Yslow en uiteindelijk in Google. Tussendoor ontwikkelt uitsluitend maatwerk thema's, is vindbaar zijn in Google belangrijk voor je? Informeer dan gerust een naar de mogelijkheden van een maatwerk thema.