Wie zeige ich eine SQL -Abfrage an, die in Abfrage ausgeführt wurde?
Frage
Ich bin zuvor auf eine Funktion gestoßen, die den genauen SQL -Code gezeigt hat, der verwendet wurde. Zum Beispiel in einer Schleife, kann sich aber nicht erinnern.
Kann mir jemand diese Funktion sagen?
Lösung
Hi @Keith Donegan:
Wenn ich Ihre Frage richtig verstehe, denke ich, wonach Sie 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, sollte er Ihnen die SQL aus der Schleife geben. Stellen Sie einfach sicher, dass Sie es inspizieren, bevor Sie etwas anderes laufen lassen, das verwendet query_posts()
wieder.
Andere Tipps
Wenn Sie eine Anfrage bewirken, basierend auf WP_Query
, Es ist das:
$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";
Siehe diese Antwort: Beste Sammlung von Code für Ihre functions.php -Datei
Fügen Sie dann zu einer WP -URL Debug = SQL hinzu, und es wird die vollständige Liste der ausgeführten Abfragen ausgeben. (Und ja, es ist beängstigend ...)
Wenn Sie nur an Loops interessiert sind, verwende ich dies normalerweise:
add_filter( 'posts_request', 'dump_request' );
function dump_request( $input ) {
var_dump($input);
return $input;
}