Herzlich willkommen zu meiner neuen täglichen Serie 100 Tipps rund um das CMS WordPress. Die Serie soll sich an alle richten, die mit WordPress zu tuen haben oder dies vorhaben – Tipps und Tricks für Einsteiger und Fortgeschrittene. Programmierkenntnisse sind keine Voraussetzung, trotzdem werden wir speziell in zwei Dateien einer WordPress-Installation per Code-Schnipseln oder Konfigurationskonstanten Veränderungen vornehmen.
Eigentlich ist schon die erste Überschrift bei meiner heute startenden, täglichen Serie „100 WordPress Tipps“ nicht ganz richtig. „Debugging“ oder auf deutsch „Fehlerbeseitigung“ bezeichnet ja eben den Vorgang Fehler zu lösen.
Bei WordPress werden die DEBUG-Konfigurations-Konstanten aber verwendet um Fehler zu finden, was, zugegebener Weise, mit der wichtigste Schritt ist, aber das Problem dennoch noch nicht beseitigt.
Daher geht dieser Tipp eigentlich besser über die Fehlerausgabe oder auch das „Logging“ zu deutsch „Protokollierung“.
Es sei gesagt, dass manche Hostinganbieter und Systeme, die sich auf WordPress spezialisiert habe, diese Einstellungen bereits in ihr Hostingbackend integriert haben. Meist muss man aber den hier beschriebenen Weg gehen. In WordPress gibt es 5 Konstanten mit denen man das Logging-Verhalten einstellen kann.
Konstanten werden in der Programmiersprache PHP, in der auch WordPress geschrieben wurde in Großbuchstaben geschrieben und folgender Maßen gesetzt:
define( 'KONSTANTEN_NAME', 'konstanten-wert' );
Diese Definition der Konstanten wird in die Datei wp-config.php geschrieben. Diese befindet sich direkt im Haupzverzeichnis der Installation, sozusagen neben der index.php. Jeder Konstante darf nur einmal definiert werden. Also vorhandene Definitionen muss man löschen bzw. überschreiben.
WP_DEBUG
WP_DEBUG schaltet generell das Debugging ein (true = wahr) oder aus (false = falsch). Auf WordPress-Seiten die öffentlich sind, sollte dies möglichst immer aus sein.
// Folgender Code aktiviert das Debugging define( 'WP_DEBUG', true );
WP_DEBUG_LOG
WP_DEBUG_LOG schreibt alle Einträge in eine Datei auf dem Server. Wird nur true (wahr) angegeben, wird die Datei debug.log im wp-content Ordner erstellt bzw. beschrieben. Wird ein anderer Pfad angegeben, wird dieser für die Datei verwendet.
// Folgender Code aktiviert das Schreiben in die Standard-Datei define( 'WP_DEBUG_LOG', true ); // Folgender Code aktiviert das Schreiben in eine Datei unter angegebenen Pfad define( 'WP_DEBUG_LOG', '/logs/wp-log.log' );
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY entscheidet ob ein auftretender Fehler genau (mit auslösender Datei und Zeile) auf dem Bildschirm des Nutzers ausgegeben wird (true) oder nicht (false).
// Folgender Code aktiviert die genaue Anzeige des Fehlers auf dem Bildschirm define( 'WP_DEBUG_DISPLAY', true );
SCRIPT_DEBUG
Bei Aktivierung von SCRIPT_DEBUG (true) gibt WordPress alle CSS- und Javascript-Dateien in nicht komprimierter Form aus um hier Fehler besser zu analysieren. Dies bezieht sich nur auf Dateien aus dem „Kern“-System, nicht aus Themes oder Plugins. Allgemein wird diese Funktion nur sehr selten verwendet, da sie tiefer gehende Kenntnisse vorausetzt.
// Folgender Code aktiviert die unkomprimierte Ausgabe der WordPress-Asset-Dateien define( 'SCRIPT_DEBUG', true );
SAVEQUERIES
Um Datenbankabfragen zu Debuggen muss SAVEQUERIES aktiviert (true) werden. Wenn dies geschieht wird zu jeder Abfrage ein Datensatz bereitgestellt, der widerum ausgegeben oder protokolliert werden kann. SAVEQUERIES werden nochmal Inhalt eines eigenen Tipps.
// Folgender Code stellt weitere Daten zu jeder Datenbankabfrage zur Verfügung define( 'SAVEQUERIES', true );
PHP-Fehler, -Warnungen und -Hinweise
Manchmal ist es notwendig, da die Ausgabe von WordPress nicht genügt oder nicht erscheint, die Ausgabe von PHP an sich zu aktivieren. Hier wird nach Gewichtung in absteigender Reihenfolge unterschieden in Fehler (error), Warnungen (warnings) und Hinweise (notices). Das Aktivieren dieser unterscheidet sich leider von Hoster zu Hoster etwas. Meistens kommt man aber mit nachfolgendem Code, ebenfalls an den Beginn der wp-config.php eingefügt, ans Ziel:
//Zeigt alle PHP-Fehler, -Warnungen und -Hinweise ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);