洛杉矶MC机房 高速低价18元起

DIYVM

输出WordPress数据库查询的具体内容 减少数据库查询次数

提示:如果官网是英文页面,建议使用谷歌浏览器能同步翻译页面。点击下载【谷歌浏览器最新绿色便携版】
注意:部分文章发布时间较长,可能存在未知因素,购买时建议在本站搜索商家名称,先充分了解商家动态。
交流:唯一投稿邮箱:hostvps@88.com。

最近做一个wordpress的企业模板,关注了一下查询次数这个东西! 

在 footer.php 里添加了如下代码,以显示wordpress查询数据库次数及查询耗时: 

<?php echo get_num_queries() . ' queries in ' . timer_stop(0) . ' seconds.'; ?> 

结果显示首页查询30次,日志页查询达45次。。。真是郁闷,为了查看具体查询了数据库哪些内容,Google了一下,得到如下解决方法,这里总结出来: 

首先在 wp-config.php 里添加如下代码: 

define('SAVEQUERIES', true); 

然后在 footer.php 里添加如下代码: 

复制代码

代码如下:

<?php if (is_user_logged_in()){ 
global $wpdb; 
echo "<pre>"; 
print_r($wpdb->queries); 
echo "</pre>"; 
} ?>分析: 


1、if (is_user_logged_in()) 用于判断当前访客是否已登录,也可以用 if (current_user_can('level_10')) 来判断是否为管理员登录,目的是为了不让游客查看到这些数据,此代码可省; 

2、global $wpdb; 定义全局变量$wpdb,这是Wordpress默认的数据库类; 

3、<pre></pre>将结果嵌套在HTML标签<pre>内; 

4、print_r($wpdb->queries); 输出各次数据库查询的信息。 

刷新首页或日志页,可看到类似如下的输出结果: 

复制代码

代码如下:

Array 

[0] => Array 

[0] => SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') ORDER BY wp_posts.post_date DESC LIMIT 0, 10 
[1] => 0.0003960132598877 
[2] => require, wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts 

[1] => Array 

[0] => SELECT option_value FROM wp_options WHERE option_name = 'nuodou_header_code' LIMIT 1 
[1] => 0.0013589859008789 
[2] => require, require_once, include, get_header, locate_template, load_template, require_once, get_option 


……下面的活儿就得自己分析了,看看哪些是可以删除,哪些是可以改进的!

About 贝壳

【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

本文链接:贝壳主机网 » 输出WordPress数据库查询的具体内容 减少数据库查询次数

分享到: 生成海报
香港/美国/国内高速VPS
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活