我遇到了一个函数,该函数显示了所使用的确切SQL代码。例如,在循环中,但记不清了。

有人可以告诉我该函数吗?

#1 楼

嗨,@ Keith Donegan:

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

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


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

评论


如何获取$ wpdb的查询? $ GLOBALS ['wpdb']->请求无效

–mpsbhat
17年1月21日在5:24

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

–jave.web
17年8月16日在12:26

#2 楼

如果您基于WP_Query运行查询,则为:

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


#3 楼

查看此答案:您的functions.php文件的最佳代码收集。然后将?debug = sql添加到任何WP URL,它将输出已运行查询的完整列表。 (是的,这很可怕...)

#4 楼

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

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}