Nicht nur von WordPress, sondern auch von PHP gibt es immer wieder neue Versionen. Auch wenn viele Entwickler von Plugins und Themes für WordPress versuchen, diese aktuell und kompatibel mit neuen Versionen von WordPress und PHP zu halten, so klappt dies nicht immer.

Möchte man sehen können, an welchen Stellen es in Zukunft Probleme geben könnte, bzw. an welchen Stellen es nach einem Update Probleme gibt, so kann man unter WordPress einen Debugging-Modus aktivieren, der einem Einblicke darin gibt. Neben allen Arten von PHP-Fehlermeldungen werden auch Hinweise zur Verwendung veralteter ("deprecated") WordPress-Funktionen und -Funktionsargumente angezeigt bzw. geloggt.

Aktivieren lässt sich der Debugging-Modus über folgende PHP-Zeile, die man in die wp-config.php-Datei einfügen muss:

define('WP_DEBUG', true);

Standardmäßig sollte die Zeile mit define('WP_DEBUG', false); bereits enthalten sein - dann einfach false zu true ändern.

Werbung

Werbeblocker aktiv?

Vermutlich aufgrund eines Werbeblockers kann an dieser Stelle leider keine Werbung angezeigt werden. Als Blog ist diese Website jedoch darauf angewiesen, um diverse Kosten abdecken zu können. Vielleicht möchtest du Servaholics ja in deinem Werbeblocker als Ausnahme hinzufügen und so unterstützen? 🙂

In der Regel sollte man den Debugging-Modus allerdings nicht im produktiven System, sondern z.B. einer lokalen Kopie, die man zu Testzwecken nutzt, aktivieren. Um den aktuellen Stand der eigenen WordPress-Instanz im Live-Betrieb zu testen, kann man den Modus jedoch auch zeitweise produktiv aktivieren.

Ist er aktiv, so kann man anhand von zwei zusätzlichen Zeilen einstellen, ob die Meldungen in eine Log-Datei unter /wp-content/debug.log gespeichert oder direkt auf der Website angezeigt werden sollen. Bei folgender Kombination werden Meldungen z.B. nur in der Log-Datei gespeichert, nicht jedoch angezeigt:

define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Solche gespeicherten Meldungen sehen dann ungefähr wie folgt aus:

[21-Dec-2018 19:12:54 UTC] PHP Deprecated: Function create_function() is deprecated in [...]/wp-content/plugins/[...].php on line 80
[21-Dec-2018 20:17:15 UTC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in [...]/wp-includes/post-template.php on line 284

Diese Meldungen werden in der Log-Datei jeweils mehrfach vorkommen - für jeden Aufruf, der sie auslöst, einmal. Für eine Auswertung kann es daher sinnvoll sein, die Datums- und Uhrzeitangabe am Anfang zu entfernen und danach mehrfach vorkommende Zeilen zu löschen.

Weitere Infos zum Debugging-Modus von WordPress gibt es unter codex.wordpress.org. Übrigens: Durch die oben gezeigte Kombination der drei Zeilen wird von WordPress automatisch folgende PHP-Konfiguration vorgenommen, die man damit nicht mehr manuell zum Loggen von PHP-Meldungen, die nicht WordPress-spezifisch sind, einfügen muss:

error_reporting(E_ALL);
ini_set('display_errors', 0);

Mehr dazu findet man unter developer.wordpress.org, php.net und php.net.

Nachtrag: Wer die oben gezeigte Konfiguration im Live-Betrieb einsetzen möchte, sollte darüber nachdenken, die debug.log-Datei vor unerlaubten Zugriffen zu schützen, z.B. über folgende Zeilen in der .htaccess-Datei im Hauptverzeichnis von WordPress:

RewriteCond %{REQUEST_URI} ^(.*)wp-content/debug\.log(.*)$
RewriteRule .* - [F,L]

Andere Beiträge, die auf diesen Beitrag verlinken

Deine Meinung zu diesem Artikel?