美文网首页WordPress博客开发者日记程序员
非插件纯代码实现WordPress增加浏览次数统计及显示评论数

非插件纯代码实现WordPress增加浏览次数统计及显示评论数

作者: IT老五 | 来源:发表于2018-11-23 13:54 被阅读5次
    非插件纯代码实现WordPress增加浏览次数统计及显示评论数

    wp站点有一段时间了,之前优化了首页加载速度,又感觉缺少浏览次数的统计很不方便,于是便折腾了一下,对浏览次数和评论数做了下优化

    统计浏览次数

    这个功能做得比较简单,没有做用户及ip去重,只是单纯的统计页面打开次数,将下面代码加入模板的function.php中即可

    /**
     * 设置阅读次数
     * 注意count_key, 后续都是根据这个来统计的
     */
    function set_post_views () {   
        global $post;   
        $post_id = $post -> ID;   
        $count_key = 'views';   
        $count = get_post_meta($post_id, $count_key, true);  
        if (is_single() || is_page()) {   
            if ($count == '') {   
                delete_post_meta($post_id, $count_key);   
                add_post_meta($post_id, $count_key, '0');   
            } else {   
                update_post_meta($post_id, $count_key, $count + 1);   
            }   
        }   
    }   
    add_action('get_header', 'set_post_views');  
    

    获取浏览次数

    下面函数可以获取浏览次数,在需要显示的地方调用即可

    /**
     * 阅读次数
     * count_key与set函数的count_key一致
     */
    function get_post_views ($post_id) {   
        $count_key = 'views';   
        $count = get_post_meta($post_id, $count_key, true);   
        if ($count == '') {   
            delete_post_meta($post_id, $count_key);   
            add_post_meta($post_id, $count_key, '0');   
            $count = '0';   
        }   
        echo number_format_i18n($count);   
    } 
    

    使用示例

    最常规的使用应该是文章详情中,一般是文章页面 (single.php)的while ( have_posts() )后面,部分single.php中有get_template_part( 'template-parts/content', 'single');则需要到conent加上下面的代码

    <?php get_post_views($post -> ID); ?> 阅读
    

    显示评论次数

    在上面浏览次数之后,可以加上评论次数显示

    <?php get_post_views($post -> ID); ?> 阅读
    &#160;/&#160;
    <?php comments_number('暂无评论', '1条评论', '% 评论' );?>
    

    在后台文章列表统计中增加浏览次数

    require_once( trailingslashit( get_template_directory() ) . 'trt-customize-pro/newslite/class-customize.php' );
    
    //在后台文章列表增加一列数据
    add_filter( 'manage_posts_columns', 'ashuwp_customer_posts_columns' );
    /**
     * 注意"views"需要与之前统计set方法一致
     */
    function ashuwp_customer_posts_columns( $columns ) {
        $columns['views'] = '浏览次数';
        return $columns;
    }
     
    //输出浏览次数
    add_action('manage_posts_custom_column', 'ashuwp_customer_columns_value', 10, 2);
    
    /**
     * 注意"views"需要与之前统计set方法一致
     */
    function ashuwp_customer_columns_value($column, $post_id){
        if($column=='views'){
            $count = get_post_meta($post_id, 'views', true);
            if(!$count){
                $count = 0;
            }
            echo $count;
        }
        return;
    }
    

    原文:简书ThinkinLiu 博客: IT老五

    以上代码能实现浏览次数统计,而且免于安装插件。唯一的不好之处是更换主题后,需要重新增加代码(不过历史浏览统计数据不会丢),在这里记录下,以后需要用到的时候不需要再敲代码,同时,也希望能帮到有需要的朋友。

    相关文章

      网友评论

        本文标题:非插件纯代码实现WordPress增加浏览次数统计及显示评论数

        本文链接:https://www.haomeiwen.com/subject/brljqqtx.html