view queries made?

时间:2011-08-21 作者:FLX

我知道我可以用get_num_queries() 查询的数量。然而,我如何才能看到Wordpress实际发出的查询?我尝试过使用$查询,但没有成功。

4 个回复
最合适的回答,由SO网友:Milo 整理而成

看见this codex page.

在里面wp-config.php:

define(\'SAVEQUERIES\', true);
然后在模板中:

if (current_user_can(\'administrator\')){
    global $wpdb;
    echo "<pre>";
    print_r($wpdb->queries);
    echo "</pre>";
}
或无上述内容SAVEQUERIES, 您仍然可以只看到主查询:

global $wp_query;
echo $wp_query->request;
或查看所有$wp_query:

<pre>
    <?php print_r($wp_query); ?>
</pre>

SO网友:Alexandre Schmidt

还有一种低层次的方法可以找出在整个请求过程中进行了哪些查询,这对我非常有用,以便在提交表单时确定要插入到数据库中的内容。

基本上,我所做的是在提交表单之前进行一次数据库转储,在提交表单之后进行另一次数据库转储,然后进行两次差异。

虽然它看起来太原始了,但结果正是我所需要的,无需安装任何插件或修改任何代码或wp-config.php.

我采用的程序是:

准备好表格并填写好所有字段。

执行第一次转储(更改user, passdbname 相应地):

mysqldump -uuser -ppass dbname --skip-opt > /tmp/before.sql

执行第二次转储(更改user, passdbname 相应地):

mysqldump -uuser -ppass dbname --skip-opt > /tmp/after.sql

before.sql 和after.sql, 分析中的结果vim:

diff /tmp/before.sql /tmp/after.sql | vim -

备注:

  1. --skip-opt 每行生成一条SQL指令的转储,因此运行时更容易看到更改diff.

  2. | vim - 制造vim 读取的输出diff 直接进入缓冲区。

SO网友:tollmanz

米洛的答案是正确的。我想补充一下,为了给您省去一些麻烦,请下载WordPress Debug Bar 插件。这个插件将在前端页面的底部添加一个小条,它将捕获重要的调试信息,包括在请求期间进行的查询。要使其工作,您需要确保常数WP_DEBUGSAVE_QUERIES 在wp配置中设置为true。php文件。

SO网友:Maciej Paprocki

与上面类似,我强烈建议使用查询监视器插件:https://wordpress.org/plugins/query-monitor/它有很多很好的特性,对本地调试很有帮助。

要使用的更专业的工具是不同的APM,但它们是付费的。我用过的最好的是new rellic,但datadog APM工作得很好。

结束

相关推荐

Jquery in IE, fully messed up

我正在使用nivo slider 在我的一个网站上,滑块在Firefox中看起来很完美,但在IE 7、8中,它的高度增加到1006px,滑块可以工作,但高度增加了很多,我已经停用了所有插件,它的视图仍然相同,但在我的localhost中它也可以在IE中工作,但我无法区分其中的实际问题,这里是网站http://www.marqueehireauckland.net.nz/有人能帮我吗?我的nivo滑块代码是<script type=\"text/javascript\" src=\"<?php