站长之家 - 站长资讯 - 易采站长站

当前位置: > 建站教程 > 源码教程 > 博客日志 >

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

2018-05-15 18:46 | 来源:易采源码网 | 编辑:admin |

最近做一个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
)

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

  • WordPress 评论者超链接实现重定向跳转的方法
  • 控制好你的 Wordpress 侧边栏
  • WordPress中J.parentNode为空或不是对象的解决方法
  • WordPress源代码中文乱码的解决方法
  • WordPress中非插件实现嵌套回复效果的方法
  • wordpress 为主题添加AJAX提交评论功能的php代码
  • 改进WordPress主题加载速度的技巧
  • wordpress 博客优化历程(速度)
  • wordpress 自动在正文内容后添加内容
  • WordPress 嵌套回复 (优缺点对照)
  • 网友评论

    关于我们 - 联系我们 - 广告服务 - 版权声明 - 人才招聘 - 友情链接 - 网站地图 - 帮助 - -

    CopyRight © 2010-2016 源码下载 easck.com , All Rights Reserved

    蒙公网安备 15052402000103号

    蒙ICP备14002389-1号