¿Cómo mostrar la consulta SQL que se ejecutó en la consulta?

104

Me he encontrado con una función que mostraba el código SQL exacto que se utilizó. En un bucle, por ejemplo, pero no puedo recordar.

¿Alguien puede decirme esa función?

Keith Donegan
fuente

Respuestas:

137

Hola @Keith Donegan:

Si entiendo su pregunta correctamente, ¿creo que esto es lo que está buscando?

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

$wp_queryes una variable global que contiene la consulta actual ejecutada por el bucle. Si ejecuta el código anterior en cualquier momento mientras el ciclo aún está activo o incluso justo después del ciclo, debería proporcionarle el SQL del ciclo. Solo asegúrese de inspeccionarlo antes de dejar que se ejecute otra cosa que se use query_posts()nuevamente.

MikeSchinkel
fuente
¿Cómo obtener consultas de $wpdb? $GLOBALS['wpdb']->requestno funciona
mpsbhat
1
Funciona incluso en consultas personalizadas, $my_query = new WP_Query([ /* ...some args... */ ]);=>$my_query->request
jave.web
58

Si ejecutó una consulta basada en esto WP_Query, es esto:

$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";
Hasta que
fuente
21

Si solo estás interesado en Loops, esto es lo que suelo usar:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
Rarst
fuente