如何显示查询中运行的SQL查询?


Answers:


137

@Keith甘:

如果我正确理解了您的问题,我认为这就是您要寻找的?

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

$wp_query是一个全局变量,包含循环运行的当前查询。如果您在循环仍处于活动状态时甚至在循环之后立即运行上述代码,则应该为您提供循环中的SQL。只需确保检查一下,然后query_posts()再运行其他可以再次使用的东西即可。


如何获得查询$wpdb$GLOBALS['wpdb']->request无法正常工作
-mpsbhat

1
即使在自定义查询上也可以使用,$my_query = new WP_Query([ /* ...some args... */ ]);=>$my_query->request
jave.web

58

如果您基于进行查询WP_Query,那就是:

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


21

如果您仅对循环感兴趣,这就是我通常使用的方法:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.