Wordpress免费主题插件

Wordpress计算页面数据查询次数及消耗时间

本站建立以来一直对网站在做优化,可是优化的结果只能凭借感觉上来判断页面加载快了还是慢了,突然发现两个函数,可以从数值上帮助直观的断定页面的加载情况。这两个函数分别是get_num_queriestimer_stop.修改footer部分的代码,将查询结果显示在页面上,如本站的底部样式代码

<p>本页共执行 <?php echo get_num_queries(); ?>次查询操作,耗时<?php timer_stop(3); ?>秒</p>

如果想给人高大上的感觉可以用

< ?php echo get_num_queries(); ?> queries in < ?php timer_stop(3); ?> seconds

高级进阶

1.如果你不想将统计信息显示在页面上供访问者查看,但又想自己可以知道这些统计信息,那么你可以通过html的注释将结果只显示在源代码中

<!-- <?php echo get_num_queries(); ?> queries in < ?php timer_stop(3); ?> seconds -->

只是用html的语言注释掉了

2.统计信息只有你自己登录了后可以看到,该方法是第二种显示的优化方法,博客管理员登录后就可以通过查看网页源码查询统计信息,访问者是无法查看的

< ?php if (current_user_can('level_10')) { //判断用户否为管理员登录
	echo '<!-- ' . get_num_queries() . ' queries in ' . timer_stop(3) . ' seconds -->';
} ?>

 

3.如果想查看具体查询了数据库哪些内容,首先在wp-config.php里添加define('SAVEQUERIES', true);,然后再底部添加下面代码

<?php if (is_user_logged_in()){ //判断是否登录,如果只有管理员能看到可以用current_user_can('level_10')
    global $wpdb; //定义全局变量$wpdb,这是Wordpress默认的数据库类
    echo "<pre>"; //将结果嵌套在HTML标签<pre>内
    print_r($wpdb->queries); //输出各次数据库查询的信息
    echo "</pre>";
} ?>

输出的结构数据如下,然后根据个人判断进行优化了

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
        )

 

 

添加评论

Your Header Sidebar area is currently empty. Hurry up and add some widgets.