WordPress
Debuggen
Suche…
Einführung
https://codex.wordpress.org/Debugging_in_WordPress
Das Debuggen von PHP-Code ist Teil eines Projekts. WordPress verfügt jedoch über spezielle Debug-Systeme, die den Prozess vereinfachen sowie den Code für Kern, Plugins und Designs standardisieren.
Bemerkungen
Plugins zum Debuggen in WordPress:
WP_DEBUG
WP_DEBUG
ist eine PHP-Konstante (eine permanente globale Variable), mit der der Debug-Modus in WordPress ausgelöst werden kann. Es wird davon ausgegangen, dass es standardmäßig "false" ist und normalerweise in der Datei " wp-config.php
" auf Entwicklungskopien von WordPress auf "true" gesetzt wird.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG', false );
WP_DEBUG_LOG
WP_DEBUG_LOG
ist ein Begleiter von WP_DEBUG, der bewirkt, dass alle Fehler auch in einer Protokolldatei debug.log im Verzeichnis / wp-content / gespeichert werden. Dies ist nützlich, wenn Sie alle Notizen später überprüfen möchten oder Notizen anzeigen möchten, die außerhalb des Bildschirms generiert wurden (z. B. während einer AJAX-Anforderung oder eines Wp-Cron-Laufs).
//enable
define( 'WP_DEBUG_LOG', true );
//disable
define( 'WP_DEBUG_LOG', false );
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY
ist ein weiterer Begleiter von WP_DEBUG, der steuert, ob Debugmeldungen im HTML-Code von Seiten angezeigt werden oder nicht. Der Standardwert ist "true", wodurch Fehler und Warnungen angezeigt werden, während sie generiert werden. Wenn Sie diese Option auf "false" setzen, werden alle Fehler ausgeblendet. Dies sollte in Verbindung mit WP_DEBUG_LOG verwendet werden, damit Fehler später überprüft werden können. Hinweis: Damit WP_DEBUG_DISPLAY irgendetwas tun kann, muss WP_DEBUG aktiviert sein (true).
//enable
define( 'WP_DEBUG_DISPLAY', true );
//disable
define( 'WP_DEBUG_DISPLAY', false );
SCRIPT_DEBUG
SCRIPT_DEBUG
ist eine verwandte Konstante, die WordPress zwingt, die "dev" -Versionen der zentralen CSS- und JavaScript-Dateien zu verwenden, anstatt die minimierten Versionen, die normalerweise geladen werden. Dies ist hilfreich, wenn Sie Änderungen an eingebauten JS- oder CSS-Dateien testen. Standardeinstellung ist "false".
//enable
define( 'SCRIPT_DEBUG', true );
//disable
define( 'SCRIPT_DEBUG', false );
SAVEQUERIES
Die SAVEQUERIES-Definition speichert die Datenbankabfragen in einem Array. Dieses Array kann angezeigt werden, um diese Abfragen zu analysieren. Die als wahr definierte Konstante bewirkt, dass jede Abfrage gespeichert wird, wie lange diese Abfrage ausgeführt hat und welche Funktion sie aufgerufen hat. ANMERKUNG: Dies hat Auswirkungen auf die Leistung Ihrer Website. Deaktivieren Sie diese Option daher, wenn Sie nicht debuggen.
define( 'SAVEQUERIES', true );
Das Array wird im gespeichert
global $wpdb->queries;
Beispiel wp-config.php und bewährte Methoden zum Debuggen
Mit dem folgenden Code, der in Ihre Datei wp-config.php eingefügt wird, werden alle Fehler, Hinweise und Warnungen in einer Datei namens debug.log im Verzeichnis wp-content protokolliert. Außerdem werden die Fehler ausgeblendet, sodass die Seitengenerierung nicht unterbrochen wird.
// 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 );
Bewährte Methode Wenn Sie benutzerdefinierte Meldungen zum Debug-Protokoll hinzufügen möchten, fügen Sie den folgenden Code in Ihr Plugin oder Design ein.
//Checking is function_exists
if ( !function_exists( 'print_to_log' ) ) {
//function writes a message to debug.log if debugging is turned on.
function print_to_log( $message )
{
if ( true === WP_DEBUG ) {
if ( is_array( $message ) || is_object( $message ) ) {
error_log( print_r( $message, true ) );
} else {
error_log( $message );
}
}
}
}
Protokolle in einer separaten Datei anzeigen
Wenn Sie einen Ajax-Anruf haben, ist es äußerst schwierig, ein Protokoll aus der Callback-Funktion heraus zu erhalten. Aber wenn Sie das Debugging aktivieren
define('WP_DEBUG', true);
und dann danach hinzufügen
ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
Sie haben eine error.log.txt
Datei in Ihrem Stammordner, in der sich alle Ihre Protokolle befinden. Sie können sie sogar mit loggen
error_log( print_r( 'what I want to check goes here', true) );
in Ihrem Code. Dies wird Ihnen das Leben erleichtern.