Como exibir a consulta SQL executada na consulta?

104

Eu encontrei uma função antes que exibia o código SQL exato que foi usado. Em um loop, por exemplo, mas não consigo lembrar.

Alguém pode me dizer essa função?

Keith Donegan
fonte

Respostas:

137

Olá, @Keith Donegan:

Se entendi sua pergunta corretamente, acho que é isso que você está procurando.

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

$wp_queryé uma variável global que contém a consulta atual executada pelo loop. Se você executar o código acima a qualquer momento enquanto o loop ainda estiver ativo ou mesmo após o loop, ele deverá fornecer o SQL a partir do loop. Apenas certifique-se de inspecioná-lo antes de deixar que outra coisa seja executada query_posts()novamente.

MikeSchinkel
fonte
Como obter consultas de $wpdb? $GLOBALS['wpdb']->requestnão funciona
mpsbhat
1
Funciona mesmo na consulta personalizada, $my_query = new WP_Query([ /* ...some args... */ ]);=>$my_query->request
jave.web 16/08
58

Se você executou uma consulta com base em WP_Query, é esta:

$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";
Até
fonte
21

Se você está interessado apenas em Loops, é isso que eu costumo usar:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
Rarst
fonte