WordPress不用WP-PostViews纯代码实现文章浏览数

WordPress不用WP-PostViews纯代码实现文章浏览数 - 第1张

之前搭建网站时,有些主题不带浏览统计,一直都是用的是WP-PostViews插件,使用很简单,也很实用。但网站最重要的就是访问速度,通常会用p3-profiler来检测哪些插件占用资源较多,会选择一些不是很必要的,且占资源的插件给禁用删除掉。

WP-PostViews资源占用也挺多的,最重要的是能用代码实现就不用插件的原则,所以一直想着用代码来实现文章浏览统计。而一直用插件实现文章统计,用代码后之前的浏览统计是否会归零,曾有过这样的担心。

在网上搜索了下,代码是从国外老外的网站isitwp复制过来的,也通过自己的实践与简单的修改,成功的实现代码统计文章浏览量,也不用担心之前的统计归零,可以延续之前的浏览量继续统计。

WP-PostViews插件会自动生成views自定义域,所以我们只需再次创建自定义域views就完美解决那个担心的问题。

首先,需要创建相关的函数。你可以把下面的代码粘贴到你所用主题的 functions.php 文件里。

//文章浏览统计
function getPostViews($postID){
$count_key = 'views'; //自定义域
$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 = 'views'; //自定义域
$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);
}
}

然后,粘贴下面的代码到你的主题的 single.php 的文章的 loop 里:

<?php setPostViews(get_the_ID()); ?>

最后,把下面的代码拷贝到任意你的主题模板里想要显示点击数的地方:

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

有朋友提出上面代码添加统计会影响到其它的文章(大概意思),所以在functions.php中添加以下代码:

remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

能用代码实现就不用插件的原则,这是用Wordpress以来体会较深的一句话。功能实现了,网站速度也有所提高,何乐而不为呢~

本文原创,作者:阿龙,其版权均为龙腾求知社所有。
如需转载,请注明出处:https://blog.longtengwx.com/6841.html