WordPress

WordPress 文章浏览数(代码)

LensNews

WordPress 文章浏览数(代码)
WordPress搭建网站已经有半年了,统计文章的浏览量一直用的是WP-PostViews,很简单,很实用。

网站最重要的一点就是访问速度,也经常会用p3-profiler来检测哪些插件占用资源较多,选择把一些不是很必要且占资源的插件删除。

WP-PostViews资源占用也挺多,最重要的是能用代码实现就不用插件,所以一直想着用代码来实现文章浏览统计。

而一直用插件实现文章统计,用代码后之前的浏览统计是否会归零,曾有过这样的担心。

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

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

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

  1. //文章浏览统计
  2. function getPostViews($postID){
  3.     $count_key = 'views'; //自定义域
  4.     $count = get_post_meta($postID$count_key, true);
  5.     if($count==''){
  6.         delete_post_meta($postID$count_key);
  7.         add_post_meta($postID$count_key, '0');
  8.         return "0 次浏览";
  9.     }
  10.     return $count.' 次浏览';
  11. }
  12. function setPostViews($postID) {
  13.     $count_key = 'views'; //自定义域
  14.     $count = get_post_meta($postID$count_key, true);
  15.     if($count==''){
  16.         $count = 0;
  17.         delete_post_meta($postID$count_key);
  18.         add_post_meta($postID$count_key, '0');
  19.     }else{
  20.         $count++;
  21.         update_post_meta($postID$count_key$count);
  22.     }
  23. }

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

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

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

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

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

  1. remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
能用代码实现就不用插件,这是用wordpress以来体会较深的一句话。功能实现了,网站速度也有所提高,是件很高兴的事!
(1)

本文由 远方的雪山 作者:萨龙龙 发表,转载请注明来源!

LensNews

热评文章

评论:

9 条评论,访客:0 条,博主:0 条
  1. 陈先生
    陈先生发布于: 

    效果还不错,暂时没有发现“添加统计会影响到其它的文章”这个问题

  2. WallE
    WallE发布于: 

    为了少装插件,干脆把插件卸载了

    • 萨龙龙
      萨龙龙发布于: 

      能代码实现的功能就不用插件,我觉得这是一个好的优化网站的方法。

    • 萨龙龙
      萨龙龙发布于: 

      呵呵,以后多来往,我可是经常逛你的网站了!

发表回复