U opent uw eigen website en bovenaan, boven het logo, staat opeens een regel grijze tekst. Iets als: Warning: Undefined array key “title” in /home/user/public_html/wp-content/plugins/een-plugin/includes/functies.php on line 214. De rest van de site werkt gewoon. Maar elke bezoeker ziet die regel, en het oogt alsof er iets goed mis is.
Een PHP warning zichtbaar op uw website is in de meeste gevallen niet gevaarlijk. Het is wel een signaal, en het is beslist niet iets wat u wilt laten staan. In dit artikel leggen we uit wat zo’n melding betekent, hoe u hem binnen een paar minuten onzichtbaar maakt voor bezoekers, en hoe u daarna de echte oorzaak aanpakt. In die volgorde, want verbergen is snel en oplossen kost soms wat meer tijd.
Het symptoom: wat u precies ziet
PHP is de programmeertaal waarin WordPress, uw thema en al uw plugins zijn geschreven. Wanneer PHP tijdens het opbouwen van een pagina iets tegenkomt wat niet klopt maar ook niet fataal is, produceert het een melding. Er zijn grofweg drie soorten die u kunt tegenkomen:
- Notice: het lichtste niveau. Een variabele die niet bestaat, een kleine slordigheid. Vrijwel altijd onschuldig.
- Warning: iets ging niet zoals verwacht, maar PHP kon doorgaan. Bijvoorbeeld een bestand dat niet gevonden werd of een functie die verkeerde gegevens kreeg.
- Deprecated: de code gebruikt iets dat in een nieuwere PHP-versie is afgeschaft. Werkt nu nog, maar houdt op een dag op met werken.
Een Fatal error hoort ook in deze familie, maar die geeft geen regel tekst boven de site: die legt de pagina plat. Daar gaat dit artikel niet over; daarvoor verwijzen we naar ons stuk over de critical error in WordPress.
De melding vertelt u drie nuttige dingen: het type, het bestandspad en het regelnummer. Aan het pad ziet u direct wie de schuldige is. Staat er wp-content/plugins/naam-van-plugin in, dan is het die plugin. Staat er wp-content/themes/naam, dan is het uw thema. Staat er wp-includes of wp-admin, dan is het WordPress zelf, wat zeldzaam is en meestal alsnog door een plugin wordt veroorzaakt.
Waarom de melding zichtbaar is
PHP-meldingen horen niet op het scherm te staan. Ze horen in een logbestand. Dat ze toch zichtbaar zijn, heeft één van deze oorzaken:
- WP_DEBUG staat aan in wp-config.php. Een ontwikkelaar heeft tijdens het bouwen de foutweergave ingeschakeld en is vergeten die uit te zetten. In de praktijk zit het hier bijna altijd in.
- De server toont fouten standaard. Sommige hostingpakketten hebben display_errors aan staan in de PHP-instellingen. Dan komt de melding tevoorschijn zodra er iets te melden valt, ook zonder WP_DEBUG.
- De PHP-versie is net verhoogd. Uw hosting heeft de server naar een nieuwere PHP-versie gezet, en oudere code geeft daar opeens waarschuwingen op. De weergave stond al aan, maar er was tot nu toe niets te tonen.
Dat laatste scenario zien we vaak na een hostingmigratie of nadat een hostingpartij oude PHP-versies uitfaseert. De site werkte jaren zonder een enkele melding, en na de omschakeling staan er plotseling vijf regels boven de homepage.
Stap 1: verbergen voor bezoekers
Dit is de snelle stap. Hij lost niets op, maar zorgt dat bezoekers een nette site zien terwijl u aan de oorzaak werkt. U heeft toegang nodig tot het bestand wp-config.php in de hoofdmap van uw site, via FTP of de bestandsbeheerder van uw hosting. Maak eerst een kopie van het bestand.
Zoek de regel met WP_DEBUG. Staat die op true, zet hem dan op false, of vervang het geheel door deze drie regels:
- define( ‘WP_DEBUG’, true );
- define( ‘WP_DEBUG_LOG’, true );
- define( ‘WP_DEBUG_DISPLAY’, false );
Deze combinatie is beter dan alles uitzetten. De meldingen worden nu weggeschreven naar een bestand (wp-content/debug.log) in plaats van getoond op het scherm. U kunt ze dus nog steeds lezen, maar uw bezoekers niet. Vergeet na de reparatie niet WP_DEBUG weer op false te zetten en het logbestand te verwijderen, zodat het niet eindeloos groeit. Hoe u dit precies aan- en uitzet, beschrijven we in het artikel over de debug-modus van WordPress.
Helpt dat niet, dan toont de server de fouten zelf. Zoek dan in het hostingpaneel naar de PHP-instellingen en zet display_errors uit. Bij twijfel vraagt u het aan uw hostingpartij; het is een standaardverzoek.
Stap 2: de oorzaak aanpakken
Nu de melding uit beeld is, kunt u rustig kijken wat er aan de hand is. Het bestandspad wijst de weg. Afhankelijk van wat daar staat:
De melding komt uit een plugin
Controleer eerst of er een update beschikbaar is. Veel waarschuwingen ontstaan doordat een plugin nog niet is aangepast aan een nieuwere PHP-versie, en de ontwikkelaar heeft dat vaak allang gerepareerd. Is er geen update en is de plugin al maanden niet bijgewerkt, dan is het tijd om te kijken naar een alternatief. Een plugin die waarschuwingen geeft op PHP 8.1 gaat op PHP 8.3 waarschijnlijk echt stuk.
De melding komt uit uw thema
Ook hier: eerst updaten. Is het thema maatwerk of is de bouwer niet meer bereikbaar, dan moet iemand de betreffende regel code aanpassen. Vaak gaat het om een kleine wijziging, zoals een controle toevoegen of een verouderde functie vervangen. Wees voorzichtig met direct aanpassen in een thema dat nog updates krijgt; gebruik dan een child-thema.
De melding gaat over een verouderde functie
Een “Deprecated”-melding is een waarschuwing vooruit. De code werkt nu, maar niet meer bij de volgende grote PHP-versie. Plan de vervanging in, maar het hoeft niet vandaag.
Werk in alle gevallen op een testkopie of in ieder geval met een verse back-up. Het aanpassen van code of het vervangen van een plugin kan meer breken dan de waarschuwing die u probeert weg te krijgen.
Voorkomen: drie afspraken met uzelf
Zichtbare PHP-meldingen zijn bijna altijd te voorkomen. Drie gewoonten helpen:
- Controleer wp-config.php na elke oplevering of reparatie. Staat WP_DEBUG_DISPLAY op false? Dan kan er niets op het scherm komen, wat er ook misgaat.
- Test een PHP-upgrade eerst op een kopie. Verhoogt uw hosting de PHP-versie, vraag dan of u dat op een staging-omgeving kunt uitproberen. Meldingen die daar verschijnen, lost u op voordat bezoekers ze zien.
- Houd plugins bij en ruim oude op. Een plugin die twee jaar geen update kreeg, is een waarschuwing in wording.
Komt u er zelf niet uit, of staat de melding op een plek waar u niet bij kunt, dan is dit typisch werk dat in een uurtje geregeld is. Wij doen het als onderdeel van het oplossen van fouten op WordPress-sites, maar de stappen hierboven kunt u in de meeste gevallen prima zelf zetten. Begin bij het verbergen, lees daarna rustig het logbestand, en pak de plugin of het thema aan dat in het pad staat. Meer hoeft het meestal niet te zijn.



