WordPress SQL Queries loggen

Um die von WordPress durchgeführten Database Queries zu loggen, muss man zunächst SAVEQUERIES in der wp-config.php aktivieren. Dazu folgenden Eintrag hinzufügen:

define( 'SAVEQUERIES', true );

Anschließend muss folgender Code zu einem Plugin oder in die functions.php des aktivierten Themes hinzugefügt werden:

add_action( 'shutdown', function () {
    global $wpdb;
    $log_stack = true;

    $log_file = fopen( ABSPATH . '/wp-content/sql.log', 'a' );

    fwrite( $log_file, PHP_EOL . PHP_EOL . "############################################################" . PHP_EOL . PHP_EOL . date( "F j, Y, g:i:s a" ) . PHP_EOL );

    foreach ( $wpdb->queries as $query ) {
        fwrite( $log_file, $query[0] . " - ($query[1] s)" );
        if ( $log_stack ) {
            fwrite( $log_file, PHP_EOL . "[Stack]: $query[2]" . PHP_EOL . PHP_EOL );
        } else {
            fwrite( $log_file, PHP_EOL . PHP_EOL );
        }
    }
    fclose( $log_file );
} );

Diese Methode erstellt eine Datei namens wp-content/sql.log, die alle WordPress SQL Queries enthält.

ACHTUNG: Die Datei ist öffentlich abrufbar und sollte entsprechend geschützt werden!

Schreibe einen Kommentar