学习

不用插件给WordPress文章添加阅读数统计

2020年1月13日

细心的小伙伴可能会看到,我的博客每天文章的发表时间后方多了《本文已被围观??次》,这是我刚刚添加的文章阅读数功能。

有的WordPress模板上会带这些功能,一般的模板是没有的,当然也有一些WordPress的插件可以添加这个功能。

但是由于WordPress插件规则,我们每使用一个WordPress的插件,就在我们数据库中添加一条信息,WordPress本身是没有办法生成静态页面的,所以我们的每次访问都会刷新一下WordPress数据库。如果数据库表太多,没有经过优化,就是导致我们的网站访问越来越慢,而且还会非常的耗费CPU和带宽。严重影响用户的访问体验。

所以我找了大量的资料,经过试验,终于找到了不用插件就可以实现文章阅读数的统计。

只需要修改两次的代码就可以。不好的地方在于,如果你要更新WordPress主题,那么就需要重新设置这个代码,这个代码容易被模板跟新给去除。

首先给WordPress主题的functions.php添加以下代码:

/*显示文章浏览次数*/
function getPostViews($postID){
$count = get_post_meta($postID,'views', true);
if($count==''){
delete_post_meta($postID,'views');
add_post_meta($postID,'views', '0');
return "0";
}
return $count.'';
}
function setPostViews($postID) {
$count = get_post_meta($postID,'views', true);
if($count==''){
$count = 0;
delete_post_meta($postID,'views');
add_post_meta($postID,'views', '0');
}else{
$count++;
update_post_meta($postID,'views', $count);
}
}

然后在我们主题的文章页面合适的位置,添加以下代码

本文已被围观 <?php setPostViews(get_the_ID()); echo number_format(getPostViews(get_the_ID())); ?> 次

这样我们的文章页面就可以显示文章被阅读的次数了。没刷新一次增加一个浏览量。

后边如果还有其他小功能,我会在给大家分享。让大家都能享受到建站的乐趣中来。