WordPress博客WordPressWordpress开发者

Wordpress新建文章随机一个阅读量

2018-03-08  本文已影响4人  老胡聊聊天

额。。说好听一点,就是让博客的阅读量好看一点;说难听点,就是自欺欺人……

下面只谈技术:

1、主题角度入手

我用的是大前端的主题,其他的参考一下:

dux目录下,functions-theme.php的_post_views_record方法,如下图所示


image.png

这部分代码是我加的:

            $min = 500;
            $max = 2000;
            //如果阅读量小于$min,则自动计算一个$min~$max的随机数作为阅读量
            if($post_views<$min){
                $post_views=rand($min,$max);
            }

美中不足是,这段代码是在第一次访问该文章的时候被调用,这样访问列表页面的时候还是0,打开内容页触发这段函数,阅读量才出来。

如果是在发文之后马上调用就更好了。

2、后台编辑器入手

所以考虑在编辑界面调用一下,试了一下还真的可以。
找到/wp-admin/edit-form-advanced.php中的<div id="post-body-content">,加到这下面


image.png
<div>
  <?php
  global $post;
  $post_ID = $post->ID;
  if ($post_ID) {
      $post_views = (int) get_post_meta($post_ID, 'views', true);

      $min = 500;
      $max = 2000;
      //如果阅读量小于$min,则自动计算一个$min~$max的随机数作为阅读量
      if($post_views<$min){
          $post_views=rand($min,$max);
      }

      if (!update_post_meta($post_ID, 'views', ($post_views + 1))) {
          add_post_meta($post_ID, 'views', 1, true);
      }
  }

  echo _get_post_views();
  ?>
</div>

效果如下,新建文章直接就有阅读量,是不是有点6。


image.png

最后总结一下子,因为最终修改了/wp-admin/edit-form-advanced.php这个文件,所以就跟具体的theme无关了,echo _get_post_views();是dux主题提供的代码,注释掉就行了。

不过我theme的代码并没有干掉,两边都保留了,主要是考虑到,万一哪天用爬虫直接发布到wp,不走编辑界面呢?哈哈

上一篇下一篇

猜你喜欢

热点阅读