用WordPress搭建网站已经有半年了,统计文章的浏览量一直用的是WP-PostViews,很简单,很实用。
网站最重要的一点就是访问速度,也经常会用p3-profiler来检测哪些插件占用资源较多,选择把一些不是很必要且占资源的插件删除。
WP-PostViews资源占用也挺多,最重要的是能用代码实现就不用插件,所以一直想着用代码来实现文章浏览统计。
而一直用插件实现文章统计,用代码后之前的浏览统计是否会归零,曾有过这样的担心。
在网上搜索了下,代码是从老外的网站复制过来,也通过自己的实践与简单的修改,成功的实现代码统计文章浏览量,也不用担心之前的统计归零,可以延续之前的浏览量继续统计。
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()); ?>
有朋友在WSNIPP提出上面代码添加统计会影响到其它的文章(大概意思),所以在functions.php中添加以下代码:
- remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
能用代码实现就不用插件,这是用wordpress以来体会较深的一句话。功能实现了,网站速度也有所提高,是件很高兴的事!
本文由 远方的雪山 作者:萨龙龙 发表,转载请注明来源!
效果还不错,暂时没有发现“添加统计会影响到其它的文章”这个问题
为了少装插件,干脆把插件卸载了
能代码实现的功能就不用插件,我觉得这是一个好的优化网站的方法。
回访来了,不错的方法。
呵呵,以后多来往,我可是经常逛你的网站了!