非插件方式实现 WordPress 文章浏览次数统计

2019年6月5日22:30:16 评论 405

网站上要显示文章浏览次数,如果使用的是WordPress程序的话,大部分站长都会选择 WP-PostViews 这个插件。使用插件虽然会比较方便,但是也会有一些副作用。如果使用了大量的插件的话,会拖垮我们的网站速度,所以,今天我们就来给大家介绍一下如何使用通过纯代码实现文章浏览次数统计。

此方法是基于 cookie 实现的,当每次我们浏览文章详情的时候,首先会判断当前文章的 cookie 信息是否存在, 如果存在的话则略过,如果不存在的话, 则将浏览次数加一,并将该文章的id写入 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. 通过以下代码调用浏览次数

<?php echo getPostViews(get_the_ID());?>
本文已通过「原本」原创作品认证,未经作者授权请勿直接转载,负责将依法追究其法律责任。
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: