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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow