昨天看到一个博友的博客文章开始的地方有一行“本文预计阅读时间”,遂研究了下,有以下两种方法可以实现这一功能:
1、PHP 方法
在主题的 functions.php 文件里加入以下代码,文章内容页内容开始的地方就会自动显示“预计阅读时间 x 分钟”:
function lmsim_read_time($content){
$text = trim(strip_tags( get_the_content()));
$text_num = mb_strlen($text, 'UTF-8');
$read_time = ceil($text_num/400);
$content = '<div class="read-time">预计阅读时间 <span>' . $read_time . '</span> 分钟</div>' . $content;
return $content;
}
add_filter ( 'the_content', 'lmsim_read_time');
以上代码中第 4 行的数值 400,是根据百度出来的“一般人的阅读速度平均为(300~500)字/分钟”取中间值,如果你觉得 400 太慢可以自行修改,需要自定义样式的可以对 .read-time 在 css 里自定义样式。
2、jQuery 来实现
在 js 文件里插入以下代码:
var text = $('.entry-content').text().length;
var text_num = read_time/400;
var read_time = Math.round(read_time);
if(read_time>1){
$('#read-time').text('预计阅读时间'+read_time+'分钟');
}else{
$('#read-time').text('预计阅读时间 1 分钟');
}
然后在内容页相应的地方插入一个 div <div id="read-time"></div>,就可以自动显示大概的阅读时间了,这个 js 是根据默认主题测试的,所以按照实际情况,代码第一行的 .entry-content 须根据主题正文内容外的 div 实际的 class 来修改。
讲完了,还得去抓个图,忘了。
THE END









我觉得我一分钟读300个字很有难度啊
检测滚动速度,最后可以加上:你的阅读速度打败了 99% 的人
哈哈哈哈,这个不错,不过就怕有的人没滚到位置就关闭页面了。
倒是可以加个载入进度条,然后计算载入速度,最后来个:你打开本页面的速度打败了 99% 的人。
有研究精神,点个赞。
图片没有灯箱差评!
JQ方法,不一定要在页面插入一个html标签吧。。。
牛逼!
唉,不懂代码真悲摧。
技术大神好~
一分钟400字太快了
看博客大多一目十行,400我还觉得慢了,嘿嘿。
有啥用呢
装逼用
看到大发的博客也有此类文章
哦,他不是到处游山玩水了么?
其实也可以大概统计一下字数,然后写个大概。。
人工?那太麻烦了。