So unterdrückst du Fehler und Warnungen in WordPress im Notfall
Manchmal erscheinen PHP-Fehler oder -Warnungen auf deiner Live-WordPress-Website und stören das Design oder verwirren Besucher. Du kannst diese Meldungen vorübergehend ausblenden, damit die öffentliche Seite wieder normal aussieht. Das ist nur ein Notfallschritt. Er behebt den Fehler nicht und bedeutet nicht, dass das Problem verschwunden ist.
Wichtig: Das Ausblenden von Warnungen oder Fehlern auf dem Bildschirm ist nur vorübergehend. Die Anzeige zu unterdrücken behebt die eigentliche Ursache nicht. Nutze das nur als kurzfristige Absicherung auf einer Produktivseite. Prüfe danach die Protokolle sicher, finde das verantwortliche Plugin, Theme oder den PHP-Code, arbeite mit einem Backup oder einer Staging-Kopie, behebe oder aktualisiere diesen Code und überprüfe die Website. Behandle ausgeblendete Fehler nicht so, als könntest du sie einfach ignorieren. Wenn du
WP_DEBUGausschaltest, werden Fehler auch nicht in eine Protokolldatei geschrieben.
Vorübergehender Schritt: Fehlermeldungen vor Besuchern verbergen
WordPress enthält in wp-config.php bereits eine Zeile mit WP_DEBUG. Bearbeite diese vorhandene Zeile. Füge kein zweites define( 'WP_DEBUG', ... ) ein – dieselbe Konstante zweimal zu definieren kann eine PHP-Meldung auslösen. Setze diese Einstellungen vor den Kommentar /* That's all, stop editing! */, nicht danach.
1. wp-config.php finden
Verbinde dich per FTP-Programm oder über den Dateimanager deines Hosters und öffne wp-config.php im Stammverzeichnis deiner WordPress-Installation.
2. Die vorhandene WP_DEBUG-Zeile bearbeiten
Suche die Zeile, die bereits wie define( 'WP_DEBUG', true ); oder define( 'WP_DEBUG', false ); aussieht. Ändere sie so, dass der Debug-Modus ausgeschaltet ist:
define( 'WP_DEBUG', false );
Verwende den Boolean-Wert false ohne Anführungszeichen. Ein zitiertes 'false' ist ein String, und PHP würde das als wahr behandeln.
3. Übrige PHP-Fehler auf dem Bildschirm ausblenden, falls nötig
Manche Hoster geben PHP-Fehler trotzdem aus, obwohl der WordPress-Debug-Modus aus ist. Wenn das passiert, füge die folgende Zeile in der Nähe deiner WP_DEBUG-Einstellung hinzu – nur wenn sie noch nicht vorhanden ist:
@ini_set( 'display_errors', 0 );
Nach einer sorgfältigen Bearbeitung sollte dieser Abschnitt so aussehen – nicht wie zwei untereinander kopierte WP_DEBUG-Zeilen:
define( 'WP_DEBUG', false ); @ini_set( 'display_errors', 0 );
Was das bewirkt:
define( 'WP_DEBUG', false );— Schaltet den WordPress-Debug-Modus aus. Besucher sollten dann keine WordPress-Debug-Ausgabe mehr sehen. Das protokolliert Fehler nicht für dich.@ini_set( 'display_errors', 0 );— Sagt PHP, Fehler nicht im HTML der Seite auszugeben. Das ist eine Anzeige-Einstellung, keine Fehlerbehebung.
Vermeide error_reporting(0); als Hauptmethode. Das unterdrückt die PHP-Meldungen so gründlich, dass du schwerer erkennen kannst, was kaputtgegangen ist.
Was du als Nächstes tun musst: den eigentlichen Fehler finden und beheben
Sobald die öffentliche Seite wieder lesbar ist, suche die Ursache. Ein guter Ablauf:
- Erstelle ein Backup, bevor du Plugins, Themes oder Code änderst.
- Stelle das Problem möglichst auf einer Staging-Kopie oder einer lokalen Website nach, damit Besucher nie eine Debug-Ausgabe sehen.
- Aktiviere auf dieser Staging-Kopie die Protokollierung, ohne Fehler auf dem Bildschirm anzuzeigen. Setze das vor
/* That's all, stop editing! */und aktualisiere vorhandene Debug-Zeilen, statt sie zu verdoppeln:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
So arbeiten diese Zeilen zusammen:
WP_DEBUG— musstruesein, damit die beiden anderen Debug-Konstanten wirken.WP_DEBUG_LOG— schreibt Meldungen nachwp-content/debug.log(oder einen anderen Pfad, den du setzt). Es tut nichts, wennWP_DEBUGfalse ist.WP_DEBUG_DISPLAY— auffalsegesetzt, plusdisplay_errorsauf0, hält diese Meldungen von der Seite fern, damit du sie im Protokoll lesen kannst.
Öffne debug.log per FTP oder im Dateimanager deines Hosters – nicht, indem du die Datei im Browser herunterladbar lässt. Eine Protokolldatei in wp-content kann Serverpfade und Plugin-Namen preisgeben, wenn sie jemand per HTTP abrufen kann. Schalte das Debugging danach wieder aus und lösche oder schütze die Protokolldatei.
Nutze das Protokoll, um das Plugin, Theme oder die PHP-Datei zu finden, die die Warnung oder den Fehler ausgelöst hat. Aktualisiere oder korrigiere diesen Code und lade die betroffenen Seiten erneut, um zu bestätigen, dass die Meldung verschwunden ist.
WordPress beschreibt diese Debug-Einrichtung in seinem Entwicklerhandbuch.
Warum du nicht beim Ausblenden der Meldung stehen bleiben solltest
Ausgeblendete Fehler können trotzdem Funktionen zerstören, die Website verlangsamen oder ein Sicherheitsproblem bestehen lassen. Die Bereinigung auf dem Bildschirm schützt nur die Besucher, während du arbeitest. Das eigentliche Ziel ist eine stabile Website, deren zugrunde liegendes Problem gelöst ist.
Fazit
Im Notfall kannst du die Fehlerausgabe von WordPress und PHP ausblenden, indem du die vorhandene WP_DEBUG-Zeile auf false setzt und bei Bedarf display_errors ausschaltest – immer vor dem Kommentar „stop editing“ und niemals, indem du dieselbe Konstante zweimal definierst. Diagnostiziere die Ursache anschließend auf einem Backup oder einer Staging-Website mit Debug-Protokollierung, behebe das verantwortliche Plugin, Theme oder den PHP-Code und prüfe das Ergebnis. Eine Warnung auszublenden ist vorübergehend; den Fehler zu beheben, bleibt.
