Veelvoorkomende fouten

Fouten na een plugin-update herkennen en verhelpen

Fouten na een plugin-update herkennen en verhelpen
Foto: Electric-Eye — CC BY 2.0 · Flickr

Waarom een pluginupdate uw site kan breken

Een plugin werkt zelden op zichzelf: hij deelt code, hooks en database-tabellen met WordPress zelf en met andere actieve plugins en het thema. Als een ontwikkelaar iets aanpast dat elders in die keten wordt aangesproken op een manier die niet meer klopt, ontstaat een conflict. Dat uit zich op verschillende manieren: een volledig wit scherm, een specifiek onderdeel van de site dat niet meer werkt (bijvoorbeeld het bestelproces of een formulier), of een zichtbare foutmelding met een regel PHP-code erin. Dit gebeurt het vaakst direct na het bijwerken, wat de oorzaak meteen verdacht maakt — maar niet altijd terecht: soms ligt het probleem bij een andere, al langer actieve plugin die pas door de update aan het licht komt, omdat de update net de functie aanspreekt waar het al langer sluimerende conflict in zat.

De boosdoener isoleren

  1. Schakel alle plugins tegelijk uit via het dashboard, of — als u niet meer kunt inloggen — hernoem de map `wp-content/plugins` via FTP naar bijvoorbeeld `plugins-uit`. Is de site dan weer bereikbaar, dan zit het probleem gegarandeerd bij een plugin.
  2. Activeer de plugins één voor één opnieuw, en controleer na elke activatie of de site blijft werken. Zodra de fout terugkeert, heeft u de veroorzaker gevonden. Werk hierbij systematisch en noteer welke plugin u telkens heeft geactiveerd, zodat u niet halverwege de tel kwijtraakt.
  3. Zet WP_DEBUG aan in `wp-config.php` zodat u de exacte foutmelding en het bestand waarin deze optreedt te zien krijgt, in plaats van te moeten gokken. Een foutmelding die verwijst naar het mappad van een specifieke plugin geeft vrijwel altijd meteen de boosdoener aan.

De update terugdraaien

Is de recent bijgewerkte plugin de oorzaak, dan hoeft u niet meteen op zoek naar een alternatief. Met een plugin als WP Rollback zet u een eerdere, werkende versie met één klik terug, terwijl u de ontwikkelaar de tijd geeft om het probleem in een volgende release op te lossen. Controleer daarna of de plugin automatisch updates uitvoert, en overweeg dat tijdelijk uit te schakelen tot het probleem elders is opgelost. Meld het probleem waar mogelijk ook bij de ontwikkelaar via het supportforum van de plugin — daarmee helpt u niet alleen uzelf, maar ook andere gebruikers die tegen hetzelfde conflict aanlopen.

Niet elke plugin verdient hetzelfde vertrouwen

Het risico op conflicten hangt sterk samen met hoe actief een plugin wordt onderhouden. Een plugin die al jaren niet is bijgewerkt, loopt meer risico om te breken bij een WordPress-kernupdate, terwijl een plugin die juist zeer regelmatig wordt bijgewerkt soms sneller nieuwe, nog niet uitgekristalliseerde code introduceert. Controleer bij twijfel de wijzigingslog (changelog) van een plugin vóór het bijwerken: staat daar een grote functionele wijziging in beschreven, wacht dan desgewenst een paar dagen tot eventuele meldingen van andere gebruikers zichtbaar worden, in plaats van als eerste te updaten.

Wanneer het conflict in de database zit, niet in de code

Niet elk plugin-conflict is met deactiveren of terugzetten op te lossen. Sommige plugins wijzigen bij een update ook de structuur van hun eigen database-tabellen, bijvoorbeeld om nieuwe functionaliteit te ondersteunen. Zet u in dat geval alleen de plugin zelf terug naar een oudere versie zonder ook de database mee terug te draaien, dan kan de oudere plugincode niet meer overweg met de al gewijzigde tabelstructuur, wat tot nieuwe, andersoortige fouten leidt. Herstel in zo'n geval bij voorkeur de volledige back-up van vlak vóór de update, inclusief database, in plaats van alleen de plugin-bestanden terug te zetten.

Hoe u dit de volgende keer voorkomt

De meest effectieve gewoonte is: test een grote update eerst op een staging-omgeving of kopie van de site voordat deze live gaat, in plaats van rechtstreeks op de productieomgeving bij te werken. Maak sowieso altijd een back-up vlak vóór het bijwerken, zodat u bij een probleem binnen enkele minuten kunt terugdraaien in plaats van handmatig te moeten uitzoeken wat er stuk is. Verouderde plugins vormen bovendien een risico op zichzelf, ook zonder dat u ze bijwerkt — zie het risico van verouderde plugins. Wilt u niet zelf telkens deze uitsluitingsprocedure doorlopen, dan kan Websitechecken updates begeleiden en bij problemen direct de veroorzaker isoleren.

Veelgestelde vragen

Kan ik meerdere plugins tegelijk verdenken?
Ja, soms ontstaat een conflict pas door de combinatie van twee plugins die los van elkaar goed werken. Test daarom bij twijfel ook combinaties, niet alleen los per plugin.
Is het veilig om een plugin terug te zetten naar een oudere versie?
Over het algemeen wel, zolang u geen functionaliteit gebruikt die alleen in de nieuwere versie zit. Zet de automatische update wel tijdelijk uit zodat de oudere versie niet meteen weer wordt overschreven.