Als het gaat om beveiliging, weten we hoe ontzettend belangrijk het is om regelmatig je volledige WordPress installaties (core, thema’s én plugins) te updaten, maar ook hoe lang dit updateproces kan duren, zeker als je wat meer plugins geïnstalleerd hebt. Het wordt meestal aanbevolen om de volgende stappen af te lopen:

  1. Maak back-ups van bestanden en databases
  2. Schakel plugins uit
  3. Updaten
  4. Schakel plugins één voor één in
  5. Controleer de website

Het kan een nogal langdradig proces zijn voor één website, en het wordt helemaal tijdrovend en vervelend wanneer je dit moet doen voor vijf, tien of zelfs nog meer websites.

WordPress 3.7 introduceerde automatische updates, met als specifiek doel om de beveiliging van installaties te verbeteren en het beheer van websites makkelijker te maken. Standaard is deze handige functie ingeschakeld voor kleinere updates (dus onderhoud en beveiligingsreleases) en vertalingsbestanden, maar het is ook mogelijk om de updates naar wens aan te passen. Daarom gaan we in dit artikel kijken hoe je het updaten zoveel mogelijk kan automatiseren zodra er een nieuwe versie van WordPress core, je thema’s of een plugin uitgegeven wordt. Laten we dus eens goed kijken naar de automatische updates van WordPress!

WordPress automatische updates
WordPress automatische updates

WordPress automatische updates

Er zijn vier soorten updates en automatische updates bij WordPress:

  1. Updates van WordPress core
  2. Updates van plugins
  3. Updates van thema’s
  4. Updates met vertalingsbestanden

Updates van WordPress core zijn weer onderverdeeld in drie subtypen:

  1. Core development (alleen beschikbaar voor development installaties)
  2. Minor core updates (onderhoud en beveiliging) – kleinere updates die standaard geactiveerd zijn voor stabiele installaties
  3. Major core updates

WordPress biedt je de mogelijkheid om het update proces te automatiseren voor alle typen, via twee wp-config.php constanten en een aantal API filters.

Beheren van updates op de achtergrond via wp-config.php

WordPress biedt enkele wp-config.php constanten waarmee we auto-updates kunnen beheren. Door AUTOMATIC_UPDATER_DISABLED op TRUE te zetten, zullen alle automatische updates uitgezet worden:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

WP_AUTO_UPDATE_CORE maakt het mogelijk om alleen de updates van WordPress core te beheren (minor, major en development releases). Deze constante kan als volgt worden ingesteld:

# Disables all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );

# Enables all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );

# Enables minor updates:
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

In development installaties staat WP_AUTO_UPDATE_CORE standaard op TRUE. In stabiele installaties is de standaard “minor”.

Voor de volledigheid: het is goed om te noemen dat er nog een extra constante te definiëren is die auto-updates kan uitschakelen. Maar wanneer je deze op TRUE zet, zullen alle bewerkingen van bestanden uitgezet worden, dus ook handmatige updates en installaties van plugins en thema’s.

define( 'DISALLOW_FILE_MODS', true );

In plaats daarvan kan je meestal beter de constante DISALLOW_FILE_EDITS definiëren, die de bestanden editor uitschakelt, maar de installatie en update functie verder niet beperkt.

Gerelateerde tutorial: wp-config.php bestand – Een uitgebreide bespreking over hoe je WordPress configureert

Beheren van updates op de achtergrond via API filters

Configuratie-constanten bieden een algemene manier om auto-updates in of uit te schakelen. Maar WordPress bevat ook een aantal filters waarmee je op een gedetailleerder niveau allerlei soorten updates kan beheren.

Opmerking: Filters moeten binnen plugins gebruikt worden, en “must use plugins” zijn een goede optie voor achtergrond updates, doordat ze in een speciale map binnen /wp-content zitten en automatisch ingeschakeld worden door WordPress. Deze plugins verschijnen ook niet in het WordPress Plugins scherm, dus ze kunnen niet per ongeluk worden uitgezet of verwijderd door admins op je site. Voor meer details kan je de Codex documentatie lezen.

Allereerst: het automatic_updater_disabled filter op TRUE zetten, heeft hetzelfde effect als de constante AUTOMATIC_UPDATER_DISABLED op TRUE zitten in wp-config.php:

add_filter( 'automatic_updater_disabled', '__return_true' );

We kunnen alle soorten updates beheren via de auto_update_$type filters, die updates inschakelen of uitschakelen op basis van de waarde van $type (namelijk: 'core''plugin''theme' of 'translation').

We kunnen dus alle core updates automatiseren door het auto_update_core filter op TRUE te zetten:

add_filter( 'auto_update_core', '__return_true' );

In het volgende voorbeeld zetten we ook automatische updates voor thema’s, plugins en vertalingen aan:

add_filter( 'auto_update_theme', '__return_true' );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_translation', '__return_true' );

In de bovenstaande voorbeelden hebben we auto-updates ingeschakeld. Maar deze filters kan je nog preciezer instellen. In het volgende voorbeeld automatiseren we auto-updates voor twee specifieke plugins:

function cb_auto_update_plugins ( $update, $item ) {
	$plugins = array ( 'hello', 'akismet' );
	if ( in_array( $item->slug, $plugins ) ) {
		// update plugin
		return true; 
	} else {
		// use default settings
		return $update; 
	}
}
add_filter( 'auto_update_plugin', 'cb_auto_update_plugins', 10, 2 );

De callback functie heeft twee argumenten:

  1. $update: een Booleaanse waarde die aangeeft of er al dan niet updates plaats moeten vinden;
  2. $item: het object voor de specifieke update.

De functie controleert of het item dat geüpdatet kan worden in de $plugins array zit, en stuurt op basis daarvan True of False terug.

Als laatste kunnen we ook differentiëren tussen development, minor en major updates, door true of false via de volgende filters in te stellen:

add_filter( 'allow_dev_auto_core_updates', '__return_false' );
add_filter( 'allow_minor_auto_core_updates', '__return_true' );
add_filter( 'allow_major_auto_core_updates', '__return_true' );

We weten dat een update soms mislukt. In het ergste geval kan een website zelfs offline gaan door een fout met een update. Maar gelukkig kunnen we WordPress vragen om een melding per mail na elk update (of poging tot updaten).

E-mails met resultaten, meldingen en debugging

WordPress stuurt een mail naar het adres van de admin, afhankelijk van het resultaat van het updateproces:

  • een “result” e-mail wordt verstuurd na een automatische update van WordPress core;
  • een meldingsmail wordt verstuurd wanneer WordPress een auto-update niet kon uitvoeren;
  • een debugging mail wordt verstuurd wanneer je een development versie van WordPress gebruikt.

Wanneer een auto-update uitgevoerd wordt of mislukt, stuurt WordPress een mail met het resultaat of een meldingsmail met één van de volgende onderwerpen:

  • Your site has updated to WordPress XXX (case success)
  • WordPress XXX is available. Please update! (update failed and a manual update is required: case fail)
  • URGENT: Your site may be down due to a failed update(update failed and WordPress could be down: case critical)

Het auto_core_update_send_email filter bepaalt de e-mails met resultaten en meldingen. Deze e-mails kunnen uitgezet worden door het filter op false te zetten, met de volgende code:

apply_filters( 'auto_core_update_send_email', '__return_false' );

Vooral wanneer je van plan bent om automatische updates uit te voeren voor alle nieuwere WordPress core releases en de releases van thema’s en plugins, wil je waarschijnlijk deze e-mails ingeschakeld laten, maar aanpassen op basis van het resultaat of het soort update. In het volgende voorbeeld zal WordPress geen resultatenmail meer sturen wanneer de update geslaagd is:

function cb_auto_core_update_send_email ( $send, $type, $core_update, $result ) {
	if ( !empty( $type ) && $type == 'success' ) {
		// don't send email
		return false; 
	}
		// use default settings
		return $send; 
	}
}
add_filter( 'auto_core_update_send_email', 'cb_auto_core_update_send_email', 10, 4 );

De callback functie heeft de volgende argumenten:

  • $send is een Booleaanse waarde die bepaalt of er een mail met resultaten of meldingen verstuurd moet worden;
  • $type is een string die instelt welk type email verstuurd moet worden (success, fail of critical);
  • $core_update is het object voor de specifieke update.
  • $result is het resultaat van de update van WordPress core (dit kan een WP_Error zijn).

Standaard krijgen admins een melding wanneer er een update wordt aangeboden vanuit WordPress.org, maar er iets misgaat waardoor de installatie de update niet kan uitvoeren. Deze melding wordt slechts één keer per release verstuurd. Het send_core_update_notification_email filter biedt wat flexibiliteit in wanneer deze meldingen wel of niet verstuurd moeten worden. Stel dit filter zo in:

apply_filters( 'send_core_update_notification_email', '__return_true' );

Als laatste bepaalt het automatic_updates_send_debug_email filter welke debugging mails er verstuurd worden, die handige log info bevatten over de uitgevoerde updates. Standaard worden deze mails verstuurd door development installaties. Door deze op FALSE te zetten zal WordPress geen debugmails meer sturen, en als je het filter op TRUE zetten zullen de mails juist wel in stabiele installaties verstuurd worden:

apply_filters( 'automatic_updates_send_debug_email', '__return_true' );

Wanneer en waarom je automatische updates van WordPress uit moet schakelen

Het auto-update proces is een ideale functie voor de meeste gebruikers, aangezien het een hoop tijd en moeite kan schelen.
Maar alhoewel auto-updates heel veilig lijken te zijn, moet je jezelf altijd afvragen of je ze echt allemaal standaard wil inschakelen.

Zo zijn er soms compatibiliteitsproblemen met thema’s of plugins, die door een update enkele functies of zelfs de hele website vast kunnen laten lopen. Wanneer een website vrij veel plugins gebruikt, kan het soms veiliger zijn om handmatig te updaten, of in ieder geval de plugins handmatig te updaten. Door dit één-voor-één kunnen we snel problemen zien, die bij een automatisch proces moeilijk terug te vinden kunnen zijn.

Daarnaast moet je als je een developer bent altijd voorzichtig zijn met de namen die je kiest voor je thema’s en plugins, zelfs wanneer je ze niet publiceert. Bij het uitvoeren van updates zoekt WordPress in de Plugin Directory naar nieuwe versies van je plugins, en overschrijft je bestanden wanneer er een plugin met dezelfde naam wordt gevonden. Wanneer je van plan bent om achtergrondupdates voor je thema’s en plugins in te schakelen, moet je dus zeker weten dat je unieke namen in je scripts gebruikt.

Dat is allemaal erg nuttige info voor developers. Maar hoe kan iemand die geen developer is auto-updates handig gebruiken?

Beheer automatische WordPress updates met plugins

Wanneer je zelf geen developer bent, kan je de automatische updates van WordPress beheren via een plugin.

Easy Updates Manager maakt het mogelijk voor admin gebruikers om WordPress updates te beheren voor zowel enkelvoudige websites als Multisite installaties. Via de plugin kan je alle typen WordPress updates beheren, en bij de thema’s en plugins kan je auto-updates individueel inschakelen. Overige functies hebben betrekking op de meldingsmails, het blokkeren van gebruikers en het loggen van de updates van plugins.

Easy Updates Manager - manage WordPress automatic updates
Easy Updates Manager

Bij problemen met compatibiliteit kan het nodig zijn om snel terug te gaan naar een vorige versie van je plugin of thema. WP Rollback maakt het mogelijk om een vorige versie te herstellen van een thema of plugin dat je geïnstalleerd hebt, via het Plugins scherm. Klik gewoon op de link Rollback, en de plugin geeft je een lijst met mogelijke versies.

Helaas zal WP Rollback je niet kunnen helpen als je website helemaal offline gaat, dus zorg altijd voor een back-up en lees alle online documentatie.

WP Rollback
WP Rollback

Ter afsluiting: als je een compatibiliteitstest wil doen bij auto-updates binnen je WordPress installatie, dan kan Background Update Tester je de benodigde informatie geven.

Automatische updates voor premium plugins en thema’s

Als developer van premium WordPress plugins of thema’s is het je plicht om een mechanisme voor automatische updates in je producten te integreren om dezelfde naadloze update-ervaring te bieden die gebruikers gewend zijn van WordPress.org producten. Dit is de huidige marktstandaard geworden (met een goede reden). Je kunt de premium producten zelf hosten en een updatemechanisme ontwikkelen, of gebruik maken van platforms zoals Freemius of Kernl, die een beveiligde repository en automatische updates als een service bieden, out-of-the-box.

Terugdraaien van automatische updates

Elke update van core, plugins of thema’s brengt risico’s met zich mee, of die nu handmatig of automatisch worden uitgevoerd. Gelukkig biedt WordPress een vangnet voor zowel handmatige als automatische updates. Waar automatische rollbacks voor core updates teruggaan tot WordPress 3.7, hebben we iets langer moeten wachten op rollbacks voor plugin updates.

Sinds WordPress 6.3 wordt een plugin bij een handmatige update niet opnieuw geactiveerd als deze een PHP fatale fout genereert. Deze beveiligingscontrole werd tot WordPress 6.6 niet uitgevoerd bij automatische updates van plugin.

Als je nu plugin auto-updates hebt ingeschakeld op je WordPress website, zul je in geval van een mislukking geen white screen of death zien, omdat WordPress de plugin automatisch terugdraait naar de vorige versie zodat de site niet crasht. Als je naar het plugins scherm in je WordPress dashboard gaat, zie je dat de plugin nog steeds wacht op een update.

WordPress Plugins screen showing a plugin waiting for update
Als een plugin niet automatisch wordt bijgewerkt, dan zal WordPress deze terugdraaien naar de vorige versie.

Wanneer WordPress een fout ontdekt bij het updaten van een plugin, stuurt het de websitebeheerder bovendien een e-mail met een lijst van de plugins die niet zijn bijgewerkt en de plugins die wel zijn bijgewerkt.

Een e-mail van WordPress met een waarschuwing voor mislukte automatische terugdraaiing van een plugin
Een e-mail van WordPress met een waarschuwing voor mislukte automatische terugdraaiing van een plugin

Je kunt de update opnieuw proberen in een testomgeving, wachten op een nieuwe plugin release die het probleem verhelpt of contact opnemen met de developer voor ondersteuning.

Kinsta Automatische Updates

WordPress updates moeten met zorg en voorzichtigheid worden uitgevoerd, omdat ze kunnen mislukken en je met een wit scherm kunnen achterlaten of compatibiliteitsproblemen kunnen veroorzaken tussen plugins of met de WordPress-core.

Het is essentieel om updates eerst te testen in een testomgeving en een backup van de live-site te maken voordat je ze doorvoert. Dit geldt vooral voor bedrijven en educatieve websites.

Zelfs als je alle voorzorgsmaatregelen hebt genomen om ervoor te zorgen dat updates veilig worden uitgevoerd, kost het updaten van de core, plugins en thema’s veel tijd, vooral bij het beheren van tientallen of honderden WordPress-websites.

Het klopt dat automatische updates nu beschikbaar zijn voor de WordPress-core en plugins, en dat er een rollback-optie bestaat voor mislukte automatische plugin-updates. Dit zijn echter geen definitieve oplossingen en vereisen nog steeds actieve monitoring.

Het MyKinsta-dashboard biedt verschillende features waarmee je de uitvoeringstijd en het risico dat gepaard gaat met WordPress-, plugin- en thema-updates kunt minimaliseren of zelfs volledig elimineren. Dit is bijzonder nuttig voor complexe sites en bureaus met tientallen of honderden websites.

In het MyKinsta-dashboard kun je:

  • Controleren welke van je geïnstalleerde plugins en thema’s worden getroffen door bekende kwetsbaarheden.
  • Plugins en thema’s afzonderlijk of in bulk updaten, voor één omgeving of meerdere omgevingen tegelijk.
  • Plugins en thema’s in- of uitschakelen.
  • Automatische updates voor plugins en thema’s in- of uitschakelen, afzonderlijk of in bulk.
  • Kinsta Automatische Updates inschakelen.

Log in op je MyKinsta-dashboard en navigeer naar WordPress sites. Hier tonen de tabbladen Plugins en Thema’s alle geïnstalleerde plugins en thema’s op je WordPress websites. Deze lijsten bevatten de versienummers, beschikbare updates en de nieuwste versie van elke extensie. Via een keuzemenu kun je specifieke acties uitvoeren op individuele plugins/thema’s of in bulk.

Het tabblad Plugins toont alle geïnstalleerde plugins op al je WordPress sites.
Het tabblad Plugins toont alle geïnstalleerde plugins op al je WordPress sites.

Je kunt ook plugin-/thema-versies controleren en updates beheren voor specifieke installaties/omgevingen. Log in op je MyKinsta dashboard en navigeer naar WordPress sites > sitenaam > Plugins en thema’s. Hier vind je de volgende secties:

  • Automatische updates
  • Geïnstalleerde plugins
  • Geïnstalleerde thema’s
  • Kinsta Automatische Updates

Onder Automatische updates kun je controleren welke automatische update is ingeschakeld op je site/omgeving. De knop Wijzigen opent een keuzemenu waar je een van de drie update-opties kunt selecteren voor alle plugins en thema’s van je site:

  • Handmatig: Automatische updates uitschakelen
  • WordPress automatische updates: Ingebouwde WordPress automatische updates voor plugins en thema’s inschakelen
  • Kinsta Automatische Updates: Kinsta Automatische Updates inschakelen met een visuele regressietest.
Automatische updates wijzigen in MyKinsta
Automatische updates wijzigen in MyKinsta

De secties Geïnstalleerde plugins en Geïnstalleerde thema’s geven lijsten weer van de plugins en thema’s in je WordPress-omgeving. Hier kun je de status van de extensie controleren (actief of inactief), de geïnstalleerde versie, de nieuwste versie en de status van automatische updates. Met een keuzemenu kun je de plugin/thema updaten, activeren of deactiveren, en de instellingen voor automatische updates afzonderlijk of in bulk aanpassen.

Geïnstalleerde plugin in een WordPress-omgeving in MyKinsta
Geïnstalleerde plugin in een WordPress-omgeving in MyKinsta

Als een versie bekendstaat om beveiligingsproblemen, wordt een rood driehoekje met een tooltip weergegeven om je te waarschuwen voor het potentiële risico.

Een pluginversie met bekende beveiligingsproblemen
Een pluginversie met bekende beveiligingsproblemen

Waar de vorige secties details geven en je in staat stellen WordPress automatische updates te beheren, biedt de sectie Kinsta Automatische Updates informatie over de updates die automatisch door Kinsta worden uitgevoerd.

Kinsta Automatische Updates
Kinsta Automatische Updates

Deze updates zijn niet zomaar een krachtigere versie van het WordPress updatesysteem. Ze zijn anders en efficiënter. Ze houden je WordPress-plugins en -thema’s up-to-date en voeren visuele regressietests uit op je site vóór en na de update. Als er een fout wordt gedetecteerd, draait Kinsta Automatische Updates de wijzigingen terug.

Een screenshot van een mislukte update
Een screenshot van een mislukte update

Kinsta Automatische Updates zijn zeer aanpasbaar. Je kunt de testfrequentie, het tijdsvenster en de gevoeligheid van de visuele regressietest kiezen. Je kunt ook de URL’s van de te testen sites selecteren en specifieke pagina-elementen uitsluiten van de test. Bovendien kun je kiezen of je de onderhoudsmodus wilt inschakelen tijdens het uitvoeren van updates.

Kinsta Automatische Update instellingen
Kinsta Automatische Update instellingen

Dankzij de add-on Kinsta Automatische Updates kan je team de tijd die ze normaal gesproken besteden aan het updaten van WordPress-plugins en -thema’s drastisch verminderen. Als je tientallen of zelfs honderden sites beheert, besparen Kinsta Automatische Updates tijd en middelen, zodat je je minder hoeft te focussen op onderhoud en meer op je kernactiviteiten.

Voor een volledig overzicht van Kinsta Automatische Updates, bekijk onze documentatie over automatische updates.

Samenvatting

WordPress automatische updates zijn een geweldige functie die tijd en moeite kan besparen terwijl je je website up-to-date houdt. Gelukkig beschikt WordPress tegenwoordig over een krachtig systeem voor automatische updates van core, plugins en thema’s.

Toch zijn automatische updates niet volledig veilig. Ze kunnen om verschillende redenen mislukken, en daarom kun je ze niet aan het toeval overlaten. Het is essentieel om een recente back-up te hebben om te herstellen in geval van een mislukking, en om de site zorgvuldig te controleren na elke update.

Bovendien kan het updaten van het WordPress-platform, naarmate je website groeit of je klantenbestand toeneemt, een complexe en tijdrovende taak worden, zelfs als je WordPress automatische updates hebt ingeschakeld.

Dit is waar Kinsta Automatische Updates van pas komen. Deze krachtige add-on stelt je in staat automatische updates in te stellen voor WordPress-plugins en -thema’s, een visuele regressietest uit te voeren die de weergave van je site vóór en na elke update vergelijkt, en wijzigingen terug te draaien indien nodig. Je hoeft je geen zorgen te maken over het succes van een update, want Kinsta heeft het voor je geregeld.

Wil je een slimmere manier om updates te beheren? Probeer dan nu onze premium add-on.

Carlo Daniele Kinsta

Carlo is een gepassioneerd liefhebber van webdesign en front-end development. Hij werkt al meer dan 10 jaar met WordPress, ook in samenwerking met Italiaanse en Europese universiteiten en onderwijsinstellingen. Hij heeft tientallen artikelen en gidsen over WordPress geschreven, gepubliceerd op zowel Italiaanse als internationale websites en in gedrukte tijdschriften. Je kunt Carlo vinden op X en LinkedIn.