刷新不累加的wordpress文章浏览次数统计功能

之前博客吧分享过免插件实现wordpress文章浏览阅读次数的教程代码,通过该代码函数可以实现统计每篇文章的阅读次数,统计方式是每刷新一次页面浏览次数就会增加一次,但是不少用户希望同一个访客不管刷新页面多少次都只统计一次,那么就需要对代码进行调整,增加设置cookie即可实现。

1、把下面的代码添加至主题的functions.php文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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文件的第一行添加以下代码:

1
2
3
4
5
6
<?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、在single.php文件要显示浏览次数的位置添加以下代码:

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

提示:以上示例代码使用的字段名称是views,请根据原来的代码进行修改,如果是第一次添加,直接使用即可。

发表留言