WordPress-Debugging: Der grundlegende Leitfaden
Veröffentlicht: 2021-02-11Unabhängig davon, auf welchem Level Sie WordPress-Entwickler sind, gibt es ein Problem, mit dem Sie ständig konfrontiert werden: Fehler. Selbst die erfahrensten Entwickler können nicht konsequent auf eine Weise programmieren, die keine Fehler produziert. Tatsächlich kann Ihnen das Debuggen von WordPress dabei helfen, noch mehr über die Plattform zu erfahren!
Wenn Sie über Programmiererfahrung verfügen, sind möglicherweise Fehler beim Kompilieren oder zur Laufzeit aufgetreten. Wenn Sie nicht das Handtuch geworfen und das Projekt weggeworfen haben, haben Sie wahrscheinlich einige Zeit damit verbracht, den Code durchzugehen und das Problem aufzuspüren. Die Dynamik bei WordPress ist dieselbe.
Anders als beim Programmieren in einer gängigen Programmiersprache werden WordPress-Fehler nicht einfach auf der Seite ausgedruckt. Dies liegt daran, dass Debugprotokolle häufig vertrauliche Informationen enthalten, wie z. B. die Anmeldeinformationen für Datenbanken. WordPress legt diese Protokolle stattdessen in Dateien auf Ihrem Server ab, die für die Öffentlichkeit nicht zugänglich sind.
Glücklicherweise müssen Sie im Gegensatz zu den Computern, die von der US-Armee dreißig Tonnen wogen, nicht buchstäblich tote Fehler von Ihrem Computer entfernen, um dies zu erreichen! Nun, da wir etwas Kontext haben, lassen Sie uns einen technischeren Blick darauf werfen, was in den WordPress-Debugging-Prozess einfließt.
WordPress Debug erklärt
Wie Sie wahrscheinlich wissen, wird WordPress mit PHP entwickelt. Das bedeutet, dass der offizielle WordPress-Leitfaden zum Debuggen sowie der offizielle PHP-Debugging-Leitfaden hervorragende Ressourcen sind, die Ihnen auf diesem Weg helfen.
Um überhaupt debuggen zu können, erfordert WordPress, dass Sie eine globale PHP-Variable definiert haben. Wie das genau geht, werden wir im nächsten Abschnitt besprechen.
Es ist wichtig zu unterscheiden, wie sich der PHP-Debugging-Prozess vom WordPress-Debugging-Prozess unterscheidet. Bei Vanilla-PHP werden standardmäßig nur zwei Arten von Fehlern angezeigt. Einer ist ein „fataler Fehler“, was bedeutet, dass er so schwerwiegend ist, dass die Seite nicht einmal geladen werden kann. Die andere zeigt dem Benutzer einfach eine leere Seite, wenn ein „sensibler schwerwiegender Fehler“ auftritt. Mit anderen Worten, PHP weiß, dass das Ausdrucken der vollständigen Fehlermeldung ein Sicherheitsrisiko darstellen kann. Diese Einstellungen können leicht in PHP selbst geändert werden.
WordPress hingegen ist beim Debuggen etwas wortreicher. Wenn Sie das WordPress-Debugging einfach aktivieren und nicht anpassen, werden alle Fehlerstufen, Warnungen und sogar informative Elemente für Entwickler angezeigt. Das bedeutet, dass alles von schwerwiegenden Fehlern bis hin zu einer technischen Nachricht angezeigt wird, wie Sie einen Abschnitt von JavaScript optimieren sollten. Obwohl dies für Entwickler äußerst hilfreich ist, ist es wahrscheinlich nicht der beste Inhalt, um Benutzern zu zeigen.
Eine weitere einzigartige Funktion ist, dass Sie über veraltete WordPress-spezifische PHP-Funktionen informiert werden. Funktionen, die veraltet sind, funktionieren möglicherweise noch jetzt, werden jedoch in Zukunft nicht mehr unterstützt. Dies bedeutet in der Regel auch, dass es einen besseren und schnelleren Weg gibt, denselben Prozess durchzuführen.
Wir wissen, dass Sie wahrscheinlich nicht begeistert davon sind, WordPress zu debuggen, aber es ist wichtig, wenn Sie einen funktionierenden Blog oder eine funktionierende Website pflegen möchten. Bevor Sie jedoch mit der Bearbeitung von Dateien beginnen, sollten Sie zuerst ein vertrauenswürdiges WordPress-Backup-Plugin verwenden. Auf diese Weise können Sie, wenn Sie Ihre Site versehentlich funktionsunfähig machen, mit nur wenigen Klicks alles wiederherstellen!
Schauen wir uns nun an, wie wir ins Rollen kommen können!
Wie aktiviere ich das Debuggen in WordPress?
Um den WordPress-Debugging-Prozess zu starten, benötigen wir ein paar Zeilen PHP.
Starten Sie Ihren bevorzugten Texteditor (solange Ihr Lieblingstexteditor nicht der Windows Notepad ist!). Notepad++ ist ein häufig verwendeter Open-Source-Texteditor, der fast jede Programmiersprache unterstützt.
Laden Sie als Nächstes eine Kopie Ihrer Datei wp-config.php herunter. Bearbeiten Sie nicht die Originaldatei! Wir laden einfach die modifizierte Version hoch, wenn wir fertig sind.
Nachdem Sie wp-config.php in Ihrem Texteditor geöffnet haben, müssen Sie die folgende Codezeile hinzufügen. Suchen Sie zuerst danach, um sicherzustellen, dass Sie es noch nicht haben. PHP wird sehr unglücklich, wenn Sie dieselbe Variable zweimal definieren!
define( 'WP_DEBUG', true );
Diese Codezeile setzt lediglich die globale PHP-Variable WP_DEBUG auf den booleschen Wert true.
Ebenso, wenn Sie die Wordpress - Debug - Funktion deaktivieren wollen, dann würden Sie nur in der entgegengesetzten Codezeile setzen:
define( 'WP_DEBUG', false );
Dies aktiviert das Debuggen, aber das ist nicht sehr hilfreich, wenn wir nicht wissen, wie wir die ausgegebenen Informationen finden!
Wo ist das WordPress-Debug-Log?
Auf diese Frage gibt es technisch gesehen zwei Antworten, und die genaue Antwort hängt von Ihrer Wahl ab.
Wie gesagt, eine Möglichkeit besteht darin, define( 'WP_DEBUG', true ); einzufügen. Dies verwendet die standardmäßigen WordPress-Debugging-Log-Einstellungen, die automatisch eine Datei erstellt, wenn sie nicht existiert (oder an sie angehängt wird, wenn dies der Fall ist) im Speicherort wp-content/debug.log.
Es gibt jedoch mehrere Gründe, warum Sie es an einem anderen Ort haben möchten. Sie möchten es beispielsweise an einem Ort haben, an dem ein Debugging-Tool eines Drittanbieters darauf zugreifen kann. Um anzupassen, wo das Debugging-Log abgelegt wird, können Sie das Debugging wie folgt aktivieren:
define( 'WP_DEBUG_LOG', '/best-wp-dev/errors.log' );
WordPress Debug Log erklärt
Der Detaillierungsgrad der Informationen in Ihrem WordPress-Debug-Log hängt davon ab, wie Sie es konfigurieren. Wenn Sie es einfach ohne weitere Änderungen aktivieren, werden Sie so ziemlich jedes Ereignis protokollieren, das einen Fehler verursacht, eine veraltete Funktion verwendet oder nicht optimal ist.
Da WordPress auf PHP basiert, zeigt Ihr Protokoll jeden PHP-Fehler und jede ausgegebene Warnung an. Es enthält auch das Datum, die Uhrzeit und die IP-Adresse, die mit jedem Ereignis verbunden sind. Leider werden Sie auch die (sehr) ausführliche Ausgabe von PHP zu vielen Dingen sehen, wie zum Beispiel Code-Styling, das es nicht mag, Datenvalidierung, die meiner Meinung nach verstärkt werden sollte, und mehr.
Besonders für Leute, die gerade erst mit dem Debuggen von WordPress beginnen, kann der Blick auf die Protokolldatei ziemlich überwältigend sein. Sie sollten jedoch bedenken, dass nur wenige Elemente erforderlich sind.
Debugging vs. Logging
Obwohl sie das gleiche Ziel verfolgen, ist es wichtig, dass Sie den Unterschied zwischen Debugging und Logging verstehen. Mit anderen Worten, die Zeile define( 'WP_DEBUG', true ); macht etwas ganz anderes als die Zeile define( 'WP_DEBUG_LOG', true );.
Auf keinen Fall sollten Sie define( 'WP_DEBUG', true ); auf einer öffentlich zugänglichen Seite. Dieser Befehl druckt , wenn er allein verwendet wird, einfach Debugging-Meldungen aus. Dadurch wird nichts protokolliert und es werden Informationen ausgegeben, die verwendet werden könnten, um Daten von Ihren Sites zu stehlen. Wenn Sie sicherstellen, dass dies in Verbindung mit einem soliden WordPress-Sicherheits-Plugin nicht aktiviert ist, wird die überwiegende Mehrheit der versuchten Cyberangriffe vereitelt.
Debuggen von WordPress, ohne die Sicherheit zu gefährden
Natürlich müssen Sie Ihre Website regelmäßig debuggen. Sie möchten jedoch wahrscheinlich nicht ständig Codezeilen aus Ihrer Datei wp-config.php hinzufügen und daraus entfernen.
Wenn wir den Prozess durchdenken, müssen wir zunächst das Debuggen im Allgemeinen aktivieren. Dann müssen wir sicherstellen, dass wir Fehler protokollieren, damit sie behoben werden können. Allerdings wollen wir diese Fehler nicht an die breite Öffentlichkeit zeigen. Denken Sie daran, dass wir sowohl Standard-PHP-Fehler als auch WordPress-spezifische Fehler unterdrücken müssen.
Beispiel für einen sicheren WordPress Debug-Code
Mit dem oben beschriebenen Prozess finden Sie hier vier Codezeilen, mit denen Sie mit dem sicheren Debuggen Ihrer Website beginnen können!
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
Die ersten drei Zeilen oben setzen einfach globale PHP-Variablen, auf die WordPress achtet. Wir ermöglichen das Debuggen, richten unsere Logging-Funktionalität ein und deaktivieren dann WordPress-spezifische Fehler.
Die Chancen stehen gut, dass die vierte Linie aussieht, als ob sie aus dem linken Feld gekommen wäre! Diese Zeile soll PHP-Fehler beheben, die nicht von WordPress behandelt werden. Es ist die letzte Basis, um sicherzustellen, dass böswillige Benutzer keinen Zugriff auf sensible Site-Informationen erhalten.
Wie behebe ich einen WordPress-Debugging-Fehler?
Sehr oft verwenden Entwickler diese vier Codezeilen, die wir durchgesehen haben. Es wird ein Fehler auftreten, z. B. ein Datenbankverbindungsfehler, aber das Debugging-Protokoll enthält nichts darüber. Dies liegt daran, dass WordPress unterschiedliche globale PHP-Variablen für unterschiedliche Debugging-Methoden hat.
Schauen wir uns einige Szenarien an, in denen Sie Ihrer Datei wp-config.php ein paar weitere Zeilen hinzufügen müssen, um WordPress ordnungsgemäß zu debuggen.
Debugging von WordPress-JavaScript
Wenn Sie eine WordPress-Site haben, besteht eine sehr hohe Wahrscheinlichkeit, dass JavaScript verwendet wird. Für neuere Entwickler ist dies im Wesentlichen die Sprache, die interaktive Elemente von Websites antreibt. JavaScript ist dafür bekannt, dass das Debuggen ziemlich mühsam ist. Dies liegt daran, dass moderne Websites häufig Frameworks zusätzlich zu JavaScript verwenden, was Warnungen und Fehlermeldungen noch komplizierter macht.

Leider ist das nicht das Einzige, was das Debuggen von WordPress-JavaScript erschwert. Es gibt zwei Grundformen von JavaScript: asynchron oder „AJAX“ und reguläres JavaScript. Reguläres JavaScript arbeitet linear; eine Funktion wird erst ausgeführt, wenn diejenige ausgeführt wird, bevor sie abgeschlossen ist. Obwohl dies in den frühen Tagen des Webs funktioniert haben mag, reicht es nicht für Webanwendungen.
AJAX hingegen arbeitet im Hintergrund auf Ihrer WordPress-Site. Es ermöglicht Ihnen, JavaScript-Funktionen auszuführen und auf ihre Ausgabe zu warten, verhindert jedoch nicht die Ausführung anderer Funktionen. Es ist oft notwendig, das Sperren von Websites zu verhindern.
Der Grund, warum WordPress uns eine andere globale PHP-Variable verwenden lässt, um zu sagen, dass wir Skripte debuggen wollen, ist, dass diese Methode zum Debuggen eine riesige Datenmenge ausgibt.Der Grund, warum WordPress uns eine andere globale PHP-Variable verwenden lässt, um zu sagen, dass wir Skripte debuggen wollen, ist, dass diese Methode zum Debuggen eine riesige Datenmenge ausgibt. Dies liegt auch daran, dass JavaScript und CSS auf der Clientseite ausgeführt werden, während PHP auf der Serverseite ausgeführt wird. Um jeden Fehler auszugeben, den WordPress aufgrund von JavaScript und CSS hat, fügen Sie einfach diese Zeile hinzu:
define( 'SCRIPT_DEBUG', true);
Dadurch werden sowohl JavaScript- als auch CSS-Fehler (Stylesheet) angezeigt. Es kann auch bei diesen komplexeren AJAX-Operationen helfen.
Beheben von Datenproblemen
Fast jede Website holt Informationen aus einer Datenbank. WordPress hat mehrere Datenbanken; einige Sites speichern Datenbanken auf separaten Servern und andere behalten sie auf demselben Server. Da alle Konfigurationen unterschiedlich sind, besteht immer die Möglichkeit, dass bei Ihrer Datenbankverbindung etwas schief geht.
Wenn Sie eine Fehlermeldung erhalten, die besagt, dass WordPress keine Verbindung zu einer Datenbank herstellen konnte, oder Sie feststellen, dass die Daten nicht korrekt abgerufen werden, müssen Sie wahrscheinlich ein Debugging durchführen. Wenn Sie einfach die Standard-Debug-Variablen von WordPress verwenden, werden Sie wahrscheinlich feststellen, dass nichts protokolliert wird, wenn ein datenbankbezogener Fehler auftritt.
Dies liegt daran, dass WordPress datenbankbezogene Fehler von allen anderen Fehlern trennt. Datenbankfehlermeldungen enthalten oft sensible Informationen, und die Entwickler von WordPress wollten sicherstellen, dass Sie nicht versehentlich private Informationen an die Öffentlichkeit preisgeben!
Um mit dem Debuggen von WordPress-Datenbankproblemen zu beginnen, müssen Sie Ihrer Datei wp-config.php eine weitere Zeile hinzufügen:
define( 'SAVEQUERIES', true );
Tauchen Sie ein in das Datenbank-Debugging
Im Gegensatz zu unseren anderen globalen WordPress-Debug-Variablen müssen wir dieser besondere Aufmerksamkeit schenken. „SAVEQUERIES“ teilt WordPress mit, dass wir jede ausgeführte Abfrage und ihre zurückgegebenen Ergebnisse sehen möchten. Dies wird die Leistung der gesamten Site erheblich beeinträchtigen! Achten Sie darauf, dass Sie dies nicht zu Spitzenzeiten auf Ihrem Server ausführen, und schalten Sie es aus, sobald Sie es nicht benötigen.
Es speichert auch seine Ausgabe etwas anders. WordPress verwendet ein PHP-Array von Strings, auf die Sie zugreifen müssen, um Informationen zum Datenbank-Debugging anzuzeigen. Es befindet sich in der globalen PHP-Variablen $wpdb und im Member-Array namens query. Sie können es erreichen, indem Sie den Inhalt von $wpdb->queries ausdrucken
Debugging von WordPress-Plugins
Ein Hauptvorteil von WordPress gegenüber anderen Plattformen ist seine reichhaltige Bibliothek von Plugins, die so ziemlich alles können. Vielleicht lesen Sie dies und bekommen bereits Kopfschmerzen, wenn Sie über die Logistik nachdenken, die Dateiinhalte ständig ändern zu müssen. Zum Glück können uns einige Plugins beim Debuggen von WordPress helfen! Es gibt zwei besonders beliebte, die es zum Kinderspiel machen.
WP-Debugging
Dies ist eines der bekanntesten WordPress-Debug-Plugins auf der WordPress-Site. Es automatisiert im Wesentlichen die Prozesse, über die wir bereits gesprochen haben. Mit ein paar Klicks von Ihrem Dashboard aus können Sie all diese globalen PHP-Variablen auf Ihrer Site ein- und ausschalten.
Wenn Sie dieses Plugin installieren, installieren Sie auch eine Reihe von Plugins, von denen es abhängt. Insgesamt können Sie damit protokollieren und Fehler interpretieren, auf die Sie stoßen.
Dieses Tool eignet sich hervorragend zum Aktivieren des Debugging-Prozesses, aber um Ihre eigenen Plugins zu debuggen und datenbankbezogene WordPress-Debugging-Informationen einfach anzuzeigen, benötigen Sie auch ein weiteres Plugin.
Die Debug-Leiste
Wie der Name schon sagt, ist die Debug Bar einfach eine Leiste im Admin-Panel Ihrer WordPress-Site. Es kann in Verbindung mit dem WP-Debugging-Tool verwendet werden.
Es verfügt über Tools für fortgeschrittene Entwickler, die es ihnen ermöglichen, den Cache, die ausgegebenen Abfragen, die Ergebnisse der Abfragen und erweiterte Informationen anzuzeigen. Wie bereits erwähnt, legt WordPress alle Datenbank-Debugging-Informationen in eine globale PHP-Variable ab.
Um diese Informationen tatsächlich anzuzeigen, müssen Sie dieses Array in einer benutzerdefinierten PHP-Datei durchlaufen. Dieses Plugin bietet Ihnen eine einfache Alternative. Es druckt alle diese Informationen für Sie in einem Format aus, das recht einfach zu lesen und zu verstehen ist. Es gibt Ihnen sogar einige Tipps, wie Sie Ihre Datenbankaufrufe optimieren können!
Debugging von WordPress-Themes
Das Debuggen von WordPress-Themes beinhaltet normalerweise das Aktivieren der globalen PHP-Variablen für Skripte. Dies liegt daran, dass Themes clientseitiges JavaScript und CSS verwenden.
Stellen Sie zunächst sicher, dass es sich um ein Thema handelt, das Sie erstellt haben. Wenn es sich um ein Drittanbieter-Theme handelt, bei dem Probleme auftreten, müssen Sie sich an den Autor dieses Themas wenden. Es wäre so ziemlich der Versuch, die Nadel im Heuhaufen zu finden, um es selbst zu tun!
Wenn es sich um Ihr eigenes Design handelt, stellen Sie einfach sicher, dass Sie die besprochenen Schritte befolgt haben, um das Debuggen zu aktivieren. Führen Sie die Aktion aus, bei der Sie den Fehler bemerken. Sie können die Entwicklerkonsole auch in Ihrem Webbrowser aktivieren, indem Sie F12 drücken. Dadurch werden weitere Fehlermeldungen auf Clientebene angezeigt, die bei dem Prozess hilfreich sein können.
Nachdem Sie Aktionen an Ihrem Thema ausgeführt haben, die zu Fehlern führen, konsultieren Sie das Protokoll. Dort sollten detaillierte Informationen zu den Fehlerursachen stehen. Die Chancen stehen gut, dass es nur ein paar JavaScript- und/oder CSS-Optimierungen braucht, um alles wieder normal zu machen!
Debuggen eines kritischen WordPress-Fehlers
Wenn ein Plugin, Theme oder anderer benutzerdefinierter Inhalt einen Fehler generiert, der dazu führt, dass Ihre WordPress-Site fehlschlägt, sollte Ihre Site Ihnen eine E-Mail bezüglich des Fehlers senden. Besonders für neuere Webmaster kann dies beunruhigend sein.
Sie müssen sich keine Sorgen machen, denn Sie können einfach dieser Kette von Schritten folgen, um das Problem in kürzester Zeit zu lösen!
- Stellen Sie sicher, dass Sie den WordPress Debug-Modus aktiviert haben.
- Greifen Sie auf Ihr Fehlerprotokoll zu. Es sollte detaillierte Informationen über den schwerwiegenden Fehler enthalten. Suchen Sie in diesem Fall online nach dem genauen Fehlercode.
- Überprüfen Sie Ihre PHP-Version. Wenn dies nicht das ist, was WordPress derzeit erfordert, könnte das Problem einfach durch eine Aktualisierung der PHP-Version behoben werden, die Ihr Server verwendet.
- Wenn Sie immer noch kein Glück haben, gehen Sie Ihre Plugins durch. Schalten Sie alle aus. Wenn die Site funktioniert, bedeutet dies, dass ein Plugin das Problem verursacht hat. Gehen Sie sie nacheinander durch, bis Sie das Problem-Plugin finden. Wenden Sie sich an denjenigen, der es geschrieben hat, und bitten Sie ihn, das Problem zu beheben.
- Wenn Sie das Problem immer noch nicht gefunden haben, könnte es sich um ein themenbezogenes Problem handeln. Versuchen Sie, Ihr aktuelles Theme auf das Standard-WordPress-Theme zurückzusetzen. Wenn Ihre Website funktioniert, müssen Sie die Designs vorübergehend ändern, bis der Autor das Problem behebt.
- Kein Würfel? Stellen Sie Ihren Fehler in das Forum der WordPress-Entwickler. Es gibt viele Benutzer, die Ihnen gerne weiterhelfen.
Einpacken
Das Debuggen von WordPress kann Ihnen helfen, eine Reihe von Problemen zu lösen, auf die Sie stoßen. Es kann Ihnen sagen, welche Plugins Probleme haben oder welches Problem Sie möglicherweise mit einem Thema haben. Als WordPress-Entwickler hilft Ihnen das Debuggen nicht nur, ein besserer Entwickler zu sein, sondern hilft Ihnen auch, sauberen, qualitativ hochwertigen Code zu erstellen.
AJ verfügt über mehr als zwei Jahrzehnte Erfahrung in der Arbeit an und Entwicklung von Mitgliederseiten mit einem breiten Kundenspektrum.
