Die PHP Fehlerbeseitigung in WordPress ist im Prinzip einfacher, als in so manchen anderen vergleichbaren CMS-Systemen. Im Fachjargon spricht man vom Debugging. In diesem Beitrag geht es vor allem darum, den PHP-Fehler zuerst zu finden um diesen dann beseitigen zu können. Um plötzlich auftretenden Errors (Fehlern) auf die Spur zu kommen, ist es immer wieder erforderlich den sogenannten Debug-Modus zu aktivieren. Dieser löst ein debug.log-File aus, welches die Fehlermeldungen protokolliert. Folgende Abbildung zeigt einen Ausschnitt von so einem debug.log-File:
Doch nun zuerst eines nach dem anderen. Es kann nun sein, dass Sie einige Verständnisfragen dazu haben. Daher versuche ich Ihnen hier möglichst einfach zu erklären, was es mit dem Debugging in WordPress auf sich hat.
Debugging in WordPress
Das Debuggen von PHP-Code ist im Prinzip Teil eines jeden CMS-Systems. Der große Vorteil von WordPress ist es, dass das System über ein spezielles Debug-System verfügt, welches den Prozess vereinfachen und den Code über das Kern-System, die Plugins und die Themes hinweg standardisieren kann. Für Nicht-Programmierer können diese Optionen verwendet werden, um detaillierte Informationen zu Fehlern zu erhalten.
Aktivieren des Debug-Modus über wp-config.php
Mit dem folgenden Code-Snippet, welchen Sie in Ihre wp-config.php-Datei (via ftp-Server, Sie brauchen die Zugangsdaten) einfügen können, werden alle PHP-Fehler, Hinweise und Warnungen protokolliert. Die Protokollierung erfolgt dann automatisch in einer debug.log-Datei, welche sich im wp-content-Verzeichnis am ftp-Server Ihrer Website generiert. Sobald die debug.log-Datei generiert ist (am besten Sie laden die Website und den ftp-Server neu) können Sie diese öffnen und/oder lokal auf Ihrem PC abspeichern. Wenn Sie die Datei öffnen, erhalten Sie alle Fehlermeldungen. Anhand dieser Fehlermeldungen können Sie beginnen, die Fehler in Ihrem Projekt zu beseitigen.
Code zur Aktivierung des Debug-Modus über wp-config.php
Fügen Sie diesen Code in die wp-config.php-Datei Ihrer Website ein. Achten Sie darauf, dass dieser Code unmittelbar VOR der Textzeile /* That's all, stop editing! Happy blogging. */
eingefügt wird. Es kann sein, dass davor noch folgender Eintrag zu finden ist:
define( 'WP_DEBUG', true );
In diesem Fall löschen Sie diese Zeile und ersetzen diese durch den Code:
// Enable WP_DEBUG mode define( 'WP_DEBUG', true ); // Enable Debug logging to the /wp-content/debug.log file define( 'WP_DEBUG_LOG', true ); // Disable display of errors and warnings define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 ); // Use dev versions of core JS and CSS files (only needed if you are modifying these core files) define( 'SCRIPT_DEBUG', true );
Merken Sie sich aber auch unbedingt die ursprünglichen Einstellungen, damit Sie nach der Fehlersuche wieder alles so in den ursprünglichen Zustand zurück versetzen können, sollten Sie an der Originalversion Ihrer Website arbeiten.
So weit, so gut. Ich hoffe, dass Sie die debug.log-Datei im wp-content-Verzeichnis am ftp-Server Ihrer Website gefunden haben und nun die Fehler wissen. Aber was nun? Wissen Sie, was Sie mit diesen Informationen anfangen können?
PHP Fehlerbeseitigung in WordPress - ein Fallbeispiel
Es ist mir unmöglich, in diesem Beitrag auf alle PHP-Fehler und deren Beseitigung einzugehen. Aber ein sehr weit verbreitetes, übliches PHP-Problem ergibt sich im Zusammenspiel von Themes bzw. Plugins von Drittanbietern, in Verbindung mit PHP-Versionsupdates am Server. Früher oder später trifft es fast jede Website, wenn diese nicht laufend gewartet und am neusten Stand der Dinge gehalten wird.
Aktuell (Stand: 20. April 2022, sie Grafik anbei) befindet sich die PHP Version 7.4 schön langsam am auslaufen. Daher ist es ratsam, sich demnächst schon mit der PHP-Aktualisierung des Servers auf Version 8.0 bzw. 8.1 zu beschäftigen.
In der Tat gibt es bereits einige Websites, die beim PHP-Versionssprung von 7.4 auf 8.x gravierende Darstellungs- und Funktionsprobleme aufweisen. In diesem Fall (siehe Debug.log-File-Ausschnitt) war sogar die gesamte Website nicht mehr erreichbar. Wie den Zeilen im Log-File zu entnehmen ist, handelt es sich dabei um eine Inkompatibilität mit dem Theme, welches vom Themer (Entwickler des Themes) nun behoben werden muss.
PHP Fehlerbeseitigung durch technischen Support des Entwicklers
In diesem Fall ist es so, dass das verwendete Theme eine gekaufte Pro-Version eines renommierten Entwicklers ist und dieser nun die Aufgabe hat, das Theme für PHP-Version 8.x bereit zu machen. In Folge des Debuggings kann nun der Entwickler das Theme entsprechend updaten und das Update über die WordPress-Update-Funktion bereit stellen. Nach dem Theme-Update sollte das PHP-Versionsupdate auf 8.x ohne Probleme möglich sein.
Wenn Sie sich auch mit dem debug.log-File nicht sicher sind, wo das Problem zu finden ist, dann können Sie auch nach dem Ausscheidungsprinzip vorgehen und versuchen, Ihre verwendeten Plugins / Themes kurzfristig zu deaktivieren und probieren, ob es dann funktioniert. In Bezug auf Themes ist es immer ratsam, dass Sie neben ihrem individuellen Theme auch immer ein Standard-WordPress-Theme zur Auswahl haben, welches Sie für die Fehlersuche nach dem Ausscheidungsprinzip verwenden können.
Ich hoffe, dass ich Ihnen dabei helfen konnte, mit dieser Thematik umzugehen. Wenn dies nicht zum Erfolg geführt hat oder dieses Thema zu kompliziert für Sie ist, dann können Sie auch gerne meine Dienste in Anspruch nehmen und mir eine Anfrage senden: