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?

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.


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}";


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;
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.