免插件实现WordPress文章阅读次数统计及显示

转载  知更鸟 2016-12-19 10:08 阅读 253 次 评论 27 条
摘要:

经过boke112测试,代码二的方法比较简单,而且跟我们使用的wp-postviews插件的自定义栏目一样。换句话就是说,我们停用wp-postviews插件后,用这个代码二一点都不影响原来的文章阅读数,不过不建议在后台直接删除wp-postviews插件,据说这样删除会将数据库中原有的文章阅读数全部清空,建议通过FTP直接删除wp-postviews插件文件即可。

一般为Wordpress文章添加阅读次数统计,会用到wp-postviews或者wp-postviews-plus插件,这里分享两段不用插件实现Wordpress文章阅读次数的代码,供大家参考。

代码一:

一、首先将下面代码加到主题functions模版文件中:

  1. function getPostViews($postID){
  2.     $count_key = 'post_views_count';
  3.     $count = get_post_meta($postID$count_key, true);
  4.     if($count==''){
  5.         delete_post_meta($postID$count_key);
  6.         add_post_meta($postID$count_key, '0');
  7.         return "0 View";
  8.     }
  9.     return $count.' Views';
  10. }
  11. function setPostViews($postID) {
  12.     $count_key = 'post_views_count';
  13.     $count = get_post_meta($postID$count_key, true);
  14.     if($count==''){
  15.         $count = 0;
  16.         delete_post_meta($postID$count_key);
  17.         add_post_meta($postID$count_key, '0');
  18.     }else{
  19.         $count++;
  20.         update_post_meta($postID$count_key$count);
  21.     }
  22. }

二、接下来将下面代码加到主题single模版主循环的中:

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

也就是类似这句的下面

  1. <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

三、最后,将调用显示阅读次数代码加到single模版适当的位置:

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

如果想在其它位置显示阅读次数,可以将下面代码也加到functions模版中:

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

原文:Track post views without a plugin using post meta

代码二:

一、同样将下面代码加到主题functions模版文件中:

  1. //postviews
  2. function get_post_views ($post_id) {
  3.     $count_key = 'views';
  4.     $count = get_post_meta($post_id$count_key, true);
  5.     if ($count == '') {
  6.         delete_post_meta($post_id$count_key);
  7.         add_post_meta($post_id$count_key, '0');
  8.         $count = '0';
  9.     }
  10.     echo number_format_i18n($count);
  11. }
  12. function set_post_views () {
  13.     global $post;
  14.     $post_id = $post -> ID;
  15.     $count_key = 'views';
  16.     $count = get_post_meta($post_id$count_key, true);
  17.     if (is_single() || is_page()) {
  18.         if ($count == '') {
  19.             delete_post_meta($post_id$count_key);
  20.             add_post_meta($post_id$count_key, '0');
  21.         } else {
  22.             update_post_meta($post_id$count_key$count + 1);
  23.         }
  24.     }
  25. }
  26. add_action('get_header', 'set_post_views');

二、将调用显示阅读次数代码加到single模版适当的位置:

  1. <?php get_post_views($post -> ID); ?> views

调用显示阅读次数代码也可以加到其它模版文件的适当位置。

代码i源自:M2主题

文章标签: ,   ,  
原文地址:http://zmingcx.com/no-plugin-wordpress-reads.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为转载文章,来源于 知更鸟 ,版权归原作者所有,欢迎分享本文,转载请保留出处!
WordPress免费响应式主题:Nana

发表评论


表情

  1. 靠谱学生兼职网
    靠谱学生兼职网 【市长】 @回复

    好文章。

  2. 微部落博客
    微部落博客 【总理】 @回复

    有的主题自带了。

  3. 动感单车
    动感单车 【省长】 @回复

    越来越能折腾与技术更上一层楼了!

  4. 山那边
    山那边 【农民】 @回复

    模板自带文章浏览数统计,启用 WP SUPER CACHE 后,怎么解决不计数的问题,博主可有好的方法?

  5. 艺米网
    艺米网 【村长】 @回复

    模板有这功能

  6. 泛宝汇博客
    泛宝汇博客 【市长】 @回复

    好久没来看技术控的文章了,哈哈,留个手印

  7. 爱时尚
    爱时尚 【省长】 @回复

    这种统计不是一般模板或者系统都会自带的吗

    • boke112导航
      boke112导航【站长】2016-12-20 11:23  回复

      @爱时尚一般都是通过安装插件实现,主题是否带有就看是用什么主题了,大部分默认都是没有的

  8. 唯历史
    唯历史 【总理】 @回复

    停掉插件,用这个代码就能搞定?

  9. 马超金博客
    马超金博客 【镇长】 @回复

    是标题下面那个吗,我的主题自带

  10. 姜辰
    姜辰 【市长】 @回复

    搞的我都想去WP了。

  11. 闲鱼
    闲鱼 【县长】 @回复

    好吧,找时间试试,效果一样的话就又可以少用一个插件了

    • boke112导航
      boke112导航【站长】2016-12-20 11:28  回复

      @闲鱼唯一有顾虑的就是用这个代码统计之后,如果开缓存插件不知道是否会影响到计数

  12. 码农BTS
    码农BTS 【市长】 @回复

    静态的我只能默默看着

  13. 开船猫博客
    开船猫博客 【村长】 @回复

    学习了,什么时候研究下WordPress,一直用Zblog。

  14. 阅读驿站
    阅读驿站 【市长】 @回复

    好简单,考虑替换,不过这样一来function.php文件就起来越大刁,现在已经有30⑨KB,style更大都60多KB谁会优化

  15. Koolight
    Koolight 【省长】 @回复

    代码强大!有冲动把它干掉了!

  16. 明月登楼的博客
    明月登楼的博客 【总理】 @回复

    不错,这个可以有呀!支持一下!

  17. 雅兮网
    雅兮网 【省长】 @回复

    自定义栏目真是个强大的功能

    • boke112导航
      boke112导航【站长】2016-12-19 11:46  回复

      @雅兮网[呲牙] 利用好自定义栏目,可以实现很多功能的,所以有必要研究学习一下自定义栏目

  18. 西蒙宫
    西蒙宫 【村长】 @回复

    写的很好!想问这个postview的接口与插件版的是否一致?