让代码更简单

WordPress代码实现统计阅读数

重要:本文最后更新于2018-12-08 08:48:49,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

经常看到有WordPress站长在到处找统计文章阅读数量的插件,其实一般国内的主题都自带阅读数量统计,国外的就不知道了,我想应该很少有的,毕竟国外的WordPress主题大部分都是非常精简的,比如WordPress官方给的主题。那么想要给自己用的WordPress主题增加一个统计文章阅读数量的功能很困难吗?答案肯定是十分简单,仅仅只需3步即可拥有这个功能。

WordPress代码实现统计阅读数

WordPress代码实现统计阅读数

不过在实现这个功能之前,代码狗必须提醒各位,统计文章阅读数量的功能函数不会被WordPress的对象缓存机制识别,也就是说不会被缓存,加了这个功能会导致页面的sql查询数量增加1次,如果你对查询数量有所要求,还对这个数量的准确性有要求的话,还是建议不要使用了。当然如果你必须要这个功能,但对数量准确性要求不是特别高,那么可以参考memcached缓存将这个数据存在内存中,等它累计10次、20次再写入数据库中,这样如果memcached服务被重启、刷新都将丢失一些阅读量。具体如何选择看诸位自己,这里提供方法,不包括优化。

实现原理

通过WordPress官方提供的add_post_meta方法,将用户自定义字段存储在wp_postmeta表中,在用户需要的时候通过get_post_meta方法获取,需要修改时使用update_post_meta方法修改更新。详细使用方法见:WordPress函数add_post_meta详解

实现方法

在你的主题functions.php文件中插入如下代码:

记录文章阅读数量

复制
\\记录文章阅读数量
function _post_views_record() {
	if (is_singular()) {
		global $post;
		$post_ID = $post->ID;
		if ($post_ID) {
			$post_views = (int) get_post_meta($post_ID, 'views', true);
			if (!update_post_meta($post_ID, 'views', ($post_views + 1))) {
				add_post_meta($post_ID, 'views', 1, true);
			}
		}
	}
}

获取文章阅读数量

复制
\\获取文章阅读数量
function _get_post_views($before = '阅读(', $after = ')') {
	global $post;
	$post_ID = $post->ID;
	$views = (int) get_post_meta($post_ID, 'views', true);
	return $before . $views . $after;
}

然后打开主题的header.php文件,在头部加入如下代码,调用记录阅读数量方法:

复制
<?php _post_views_record(); ?>

这样每次打开页面都将会执行这个方法,自动将阅读数记录下来。

然后在文章列表模板,或者文字页模板single.php中你想显示阅读数量的位置,添加获取文章阅读数量的方法。

复制
<?php echo _get_post_views();?>

好了,到此你就已经成功集成了文章阅读数量的统计功能,在做这些操作前记得先打个磁盘快照,或者备份下文件,如果操作失误导致数据丢失,本站概不负责。

感觉很棒!可以赞赏支持我哟~

7 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐