it-swarm.com.de

Wie wird eine SQL-Abfrage angezeigt, die in der Abfrage ausgeführt wurde?

Ich bin auf eine Funktion gestoßen, die genau den SQL-Code anzeigt, der verwendet wurde. Zum Beispiel in einer Schleife, kann mich aber nicht erinnern.

Kann mir jemand diese Funktion sagen?

101
Keith Donegan

Hallo @Keith Donegan:

Wenn ich Ihre Frage richtig verstehe, denke ich, dass Sie danach suchen?

<?php echo $GLOBALS['wp_query']->request; ?>

$wp_query ist eine globale Variable, die die aktuelle Abfrage enthält, die von der Schleife ausgeführt wird. Wenn Sie den obigen Code jederzeit ausführen, während die Schleife noch aktiv ist, oder sogar direkt nach der Schleife, sollten Sie die SQL aus der Schleife erhalten. Stellen Sie einfach sicher, dass Sie es überprüfen, bevor Sie etwas anderes ausführen lassen, das query_posts() erneut verwendet.

132
MikeSchinkel

Wenn Sie eine Abfrage basierend auf WP_Query ausgeführt haben, ist dies:

$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";
58
Till

Wenn Sie sich nur für Loops interessieren, verwende ich normalerweise Folgendes:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
21
Rarst

Siehe diese Antwort: Beste Sammlung von Code für Ihre functions.php-Datei

Fügen Sie dann? Debug = sql zu einer beliebigen WP-URL hinzu, und es wird die vollständige Liste der ausgeführten Abfragen ausgegeben. (Und ja, es ist beängstigend ...)

20