Mijn basis WordPress setup

WordPress, wie kent het niet? Dit open-source CMS is inmiddels op een hele hoop websites aanwezig (meer dan 15 miljoen websites wereldwijd (#)), en dit aantal zal alleen nog maar stijgen. Gaaf en onwijs interessant, maar toch hebben veel ontwikkelaars een haat/liefde relatie met het systeem. Zo zijn er altijd wel discussies over de relatief dunne security-laag, de rare database-structuur en het verschil in code-kwaliteit in de vele beschikbare plugins. Allemaal herkenbare argumenten, maar vaak wint dan toch het enorme gebruiksgemak, de relatief lage instapdrempel en de grote hoeveelheid goede plugins en documentatie aanwezig op het web.

Dit laatste is ook bij mij het geval. WordPress heeft absoluut specifieke “ultieme” use-cases, en vooral ook use-cases die absoluut vermeden moeten worden, maar het is perfect om snel een site op te zetten met een super gebruiksvriendelijke back-end. De setup die ik gebruik is dan ook niet gecompliceerd, maar zorgt wel voor een snelle ontwikkeltijd, flexibele deployment en houdt ook nog rekening met security.

De basis van de basis

De basis van mijn basis WP setup is uiteraard de laatste versie van WordPress, zoals te vinden op wordpress.org. Dit is simpelweg nodig omdat de code open-source beschikbaar is en oude versies kunnen zorgen voor onveiligheden. Voor toekomstige referentie, de huidige versie staat op 4.9.2. Deze versie komt standaard met een drietal WordPress thema’s en de plugins Hello Dolly en Akismet, maar deze gaan gelijk de prullenbak in. Prima, lekker clean.

Het Thema

Uiteindelijk is geen enkel thema hetzelfde, maar in het begin gebruik ik altijd mijn zelfgebakken, uitgeklede thema die bestaat uit enkel de bestanden die minimaal nodig zijn, wat in combinatie met mijn huidige front-end setup zorgt voor de volgende mappen:

Deze bestanden zijn absoluut niet in steen gegraveerd, en worden uiteindelijk bijna altijd nog aangevuld met “extra single’s”, een search.php en aparte bestanden voor categorieen en tags, maar dit is de basis waar ik het mee doe.

 

 

Plugins

Er zijn twee dingen waar ik rekening mee houd betreffende plugins voor WordPress:

  • Als ik de functionaliteit zelf kan bouwen dan doe ik dit; hoe minder plugins hoe beter
  • Installeer alleen plugins die kwalitatief goed en te vertrouwen zijn; dit is bijvoorbeeld te zien aan de hoeveelheid installaties, de rating en de mate van updates

Zodra je echt een bepaalde functionaliteit nodig hebt, en je hebt zelf niet de kennis om dit te bouwen, laat je dan ook vooral verwennen door wat er beschikbaar is. Er zijn genoeg steengoede plugins beschikbaar waar anderen al vele honderden uren in hebben zitten, en het wiel opnieuw uitvinden heeft nog nooit iemand geholpen.

De plugins die ik zelf standaard installeer zijn:

BackWPUp

Het is belangrijk om regelmatig backups te maken van zowel de ontwikkeling-versie als de live-versie van een website. Het blijft een systeem wat vatbaar is voor fouten, waardoor je ineens een groot gedeelte van je werk kwijt kan zijn. BackWpUp heeft me al vele malen uit de brand geholpen, en is gewoon een hele fijne plugin om te gebruiken. Zo kunnen er makkelijk verschillende taken aangemaakt worden (bijv. voor een backup van enkel de database, of van alle bestanden) die zowel manueel als automatisch kunnen worden uitgevoerd. Zorgt toch weer voor wat mentale rust enzo.

Yoast SEO

In mijn optiek dé standaard voor SEO-implementatie in WordPress. Deze plugin maakt het eenvoudig om de SEO van de website volledig in te richten, zowel op globaal als per-post niveau. De standaard installatie is al heel goed, maar het back-end maakt het eenvoudig om alles naar wens aan te passen. Weinig verdere uitleg nodig.

w3 Total Cache

Er zijn twee grootmachten op caching gebied: W3 Total Cache en WP-Supercache. Zelf gebruik ik vaker de eerste dan de tweede, puur vanwege de grote hoeveelheid aan aanpasbaarheid van de cache. Verder biedt de plugin ook relaxte mogelijkheden om te werken met Varnish, Memcached of andere server-based caching-methodes.

iThemes Security

Deze plugin zorgt vrij eenvoudig voor wat extra veiligheid in je WordPress-installatie. Zo kun je de makkelijk te vinden back-end url naar wens aanpassen, je server-mappen op slot zetten en bijvoorbeeld meldingen inschakelen als er bestanden zijn gewijzigd. Het biedt gewoon veel handige tweaks en instellingen die het gros van de robots en hackers zou moeten kunnen tegenhouden. Al is dit natuurlijk nooit een volledige zekerheid.

Google Analytics for WordPress by MonsterInsights

Een basis-implementatie van Google Analytics is niet moeilijk: het is een klein stukje voorgekauwde code die je in de head van je website plaatst. Echter, voor de wat uitgebreidere en non-code implementatie is de Analytics plugin van MonsterInsights een hele fijne. Het zorgt ervoor dat je eenvoudig de code op je website kunt plaatsen, maar laat je bijvoorbeeld ook clickouts meten of je eigen pageviews negeren. Handig, maar waarschijnlijk niet voor iedereen een must.

Gravity Forms

Als een website een formulier nodig heeft dan is Gravity Forms voor mij een must. Het is een betaalde plugin waarmee je heel eenvoudig behoorlijk slimme formulieren kunt aanmaken, die perfect via thema-functies aangestuurd kunnen worden. Handig voor bijvoorbeeld de standaard contactformulieren, maar ook voor hele survey’s en MailChimp en betalingsformulieren. Nice!

En dan, als klap op de vuurpijl…

Advanced Custom Fields (PRO)

Deze plugin, ook wel ACF genoemd, krijgt speciaal een eigen kopje. Het is namelijk de basis waar mijn WP-thema op draait, en zonder deze plugin zouden de mogelijkheden en gebruiksvriendelijkheid van het thema een stuk geringer zijn. Het zorgt namelijk voor een behoorlijke uitbreiding op de standaard WordPress-functionaliteiten, puur doordat je er makkelijk extra velden mee aan kunt maken. Op deze manier kun je bijvoorbeeld aparte optie-gedeeltes inrichten, een plethora aan veld-types toevoegen aan alle type content (pagina’s, posts, custom post types, taxonomies, gebruikers, etc.) en flexibele content-blokken maken. Dit laatste, in de plugin ook wel flexible content genoemd, zorgt ervoor dat je als ontwikkelaar volledige controle hebt over wat er als resultaat getoond op de website wordt. Wil je een full-width Google Maps blok? Of een om-en-om layout met afbeeldingen en tekst? Alles kan, en is lekker beheerbaar.

Deployment

Er zijn veel methodes en mogelijkheden voor het deployable maken van WordPress. Zo zijn er installaties die bijvoorbeeld de WordPress core in een aparte submodule hebben, en wordt de rest beheerd via een versiebeheer-platform. Of installaties die de volledige WordPress-setup bijhouden.

Voor een deployable WordPress omgeving houd ik het graag simpel: enkel het thema-folder wordt bijgehouden via Github. Op deze manier heb ik zelf de updates in de hand en heb ik geen gekke overlap met development en productie. Dit is waarschijnlijk nog het meest vatbaar voor verandering, en ik zal dit stuk updaten zodra dit gebeurt.