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,不走编辑界面呢?哈哈