Como exibir a consulta SQL executada na consulta?

94

Eu encontrei uma função antes que mostrasse 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?

Felicidades

    
por Keith Donegan 03.12.2010 / 03:12

4 respostas

127

Oi @Keith Donegan:

Se eu 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 até mesmo após o loop, ele deverá fornecer o SQL do loop. Apenas certifique-se de inspecioná-lo antes de deixar algo executar que use query_posts() novamente.

    
por MikeSchinkel 03.12.2010 / 06:44
54

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

$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";
    
por Till 13.01.2012 / 17:26
20

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;
}
    
por Rarst 03.12.2010 / 08:00
19

Veja esta resposta: Melhor Coleção de código para o seu arquivo functions.php

Em seguida, adicione? debug = sql a qualquer URL do WP e ele exibirá a lista completa de consultas que foram executadas. (E sim, é assustador ...)

    
por Denis de Bernardy 03.12.2010 / 04:25

Tags