纯代码实现WordPress文章阅读量统计和显示(非插件, 刷新页面不累加)

地下室先生现在使用的是XIU主题,非常好用的一个wordpress主题,不过有一个问题就是,文章的阅读统计是刷新页面就会累加,虽然这样会让文章显得更有人气,却会影响我判断文章得真实阅读数。

今天在IT干货博客看到了一篇介绍纯代码实现WordPress文章阅读量统计和显示(非插件, 刷新页面不累加)的文章,这里根据我的情况稍加修改,分享下!

WordPress文章阅读量统计实现思路:

每进入一次文章详情页面, 就会通过cookie判断该用户是否在设定的过期时间内访问过该文章, 若没有访问过, 则浏览次数增加一次。

实现流程如下:

1.添加以下代码至主题的functions.php文件, 放在该文件最下面即可:

function getPostViews($postID){
    $count_key = 'views';
    $count = get_post_meta($postID, $count_key, true);
    if($count=='' || !$count){
        return "0";
    }
    return $count;
}
function setPostViews($postID){
    $count_key = 'views';
    $count = get_post_meta($postID, $count_key, true);
    if($count=='' || !$count) {
        $count = 1;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, $count);
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
	}
}

2.添加以下代码至主题的single.php 文件, 时间间隔可自定义设置, 放在该文件最上面即可:

<?php 
if(!isset($_COOKIE['views'.$post->ID.COOKIEHASH]) || $_COOKIE['views'.$post->ID.COOKIEHASH] != '1'){
	setPostViews($post->ID);
	setcookie('views'.$post->ID.COOKIEHASH,'1',time() + 99999999,COOKIEPATH,COOKIE_DOMAIN);
} 
?>

3. 将以下代码添加到要显示浏览次数的位置, 例如 文章列表(template-parts/content.php), 文章详情页面(template-parts/content-single.php), 搜索结果页面(template-parts/content-search.php)等。

<?php echo getPostViews(get_the_ID());?>

以下是IT博客添加展示阅读量的代码和实际显示效果。

添加展示阅读量的代码

不过我使用的xiu主题自带文章阅读统计功能,所以修改难度比较大,因为我不想对xiu主题的代码过分修改。还需要一段时间的摸索啊。

我准备自己开发一个稍微简单的wordpress主题,因为我的需求很简单。

 

未经允许不得转载:地下室先生博客 » 纯代码实现WordPress文章阅读量统计和显示(非插件, 刷新页面不累加)

赞 (0) 打赏作者

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 杂烩网欢迎每天互访互评,本站的每评论一次排名第一覆盖全站!回复
    • 地下室先生博客挺不错的功能,我没有给我网站添加,后期看看要不要也添加一个这个功能回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏