WP 05 – WordPress不使用插件实现阅读量的统计 (亲测有效)
目录
1 写在前面
看过很多优秀的博客都有阅读次数的统计, 感觉这真是个新奇的功能:
能知道有多少人查看了自己的写的东西, 多有成就感的一件事, 而且这也能让自己更有动力去更新文章了?
在搜索中, 发现一般为WordPress中的文章添加阅读次数的统计, 大多会用到 wp-postviews
或 wp-postviews-plus
等类似的插件.
我们知道, WordPress本来就比较臃肿, 安装太多的插件会拖慢网站的速度, 所以查找并成功实践了不用插件实现文章阅读次数统计的方法, 在这里作个记录, 供大家学习参考.
2 实现方案
2.1 添加代码到模板函数中
先把下面的代码加到主题模板文件 functions.php
中:
function getPostViews(postID){count_key = 'post_views_count';
count = get_post_meta(postID, count_key, true);
if(count==''){
delete_post_meta(postID,count_key);
add_post_meta(postID,count_key, '0');
return "0 ";
}
return count.' ';
}
function setPostViews(postID) {
count_key = 'post_views_count';count = get_post_meta(postID,count_key, true);
if(count==''){count = 0;
delete_post_meta(postID,count_key);
add_post_meta(postID,count_key, '0');
}else{
count++;
update_post_meta(postID, count_key,count);
}
}
代码放置位置如图:
2.2 添加代码到页面文件中
把下面的代码加到主题的文章页面文件 single.php
中:
<!-- 放置在这句话下面 -->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php setPostViews(get_the_ID()); ?>
代码放置位置如图:
2.3 添加次数统计代码到指定的位置
最后把调用显示阅读次数的代码加到适当的位置:
要把 阅读次数统计 功能添加到页面的指定位置, 如何定位这个位置对应的文件呢?
参考上篇博文 WP 04 – 修改WordPress的字体、段落间距等的一种思路 中的方法.
我这里使用的是 Nisarg
主题, 要插入的文件是 inc/template-tags.php
, 插入如下:
$view_count = getPostViews(get_the_ID());
printf( '<i class="fa fa-users" style="margin-left:10px;"></i>'
. esc_html__( '%1$s', 'nisarg' ) . ' 人阅读', $view_count );
代码插入位置图:
3 扩展: 后台修改文章的阅读次数
完成上述步骤了? 赶紧清除下缓存, 打开文章看下效果吧?
话说, 这个阅读次数的数量是怎么保存的呢? —— 可以在文章的编辑页面找到答案:
可以发现, 在模板文件中添加的方法为每篇文章都添加了一个局部变量 post_views_count
, 这个变量记录了页面的访问次数.
修改下它的值, 重新发布文章后, 浏览这篇文章, 看看阅读次数有什么变化吗?
说明:
这种统计方式不是实时的, 它本身有缓存, 因此在短时间内同一个用户刷新文章, 是不会立即改变阅读次数的 —— 表现为有部分阅读量不会统计进去.
参考资料
(全文完)
(感谢阅读, 转载请注明作者和出处 瘦风的南墙 , 请勿用于任何商业用途)