为WordPress博文添加文章字数和阅读时间 – WordPress美化

王小优
王小优
王小优
231
文章
0
评论
2015年9月3日
评论
6,202 1775字阅读5分55秒
摘要

最近发现有些新媒体网站的文章开头,有字数统计和该文的预期阅读时间。这功能有什么用呢,我也不知道,不过看人家有我们能不能也加一个,那就加呗。

为WordPress博文添加文章字数和阅读时间 – WordPress美化

文章字数统计

将以下代码添加到当前主题函数模板functions.php中。

  1. // 字数统计  
  2. function zm_count_words ($text) {  
  3.     global $post;  
  4.     if ( '' == $text ) {  
  5.         $text = $post->post_content;  
  6.         if (mb_strlen($output, 'UTF-8') < mb_strlen($text, 'UTF-8')) $output .= '<span class="word-count">共' . mb_strlen(preg_replace('/\s/','',html_entity_decode(strip_tags($post->post_content))),'UTF-8') .'字</span>';  
  7.         return $output;  
  8.     }  
  9. }  

文章阅读时间

将以下代码添加到当前主题函数模板functions.php中。

  1. // 阅读时间  
  2. function zm_get_reading_time($content) {  
  3.     $zm_format = '<span class="reading-time">阅读时间%min%分%sec%秒</span>';  
  4.     $zm_chars_per_minute = 300; // 估算1分种阅读字数  
  5.    
  6.     $zm_format = str_replace('%num%', $zm_chars_per_minute$zm_format);  
  7.     $words = mb_strlen(preg_replace('/\s/','',html_entity_decode(strip_tags($content))),'UTF-8');  
  8.    
  9.     $minutes = floor($words / $zm_chars_per_minute);  
  10.     $seconds = floor($words % $zm_chars_per_minute / ($zm_chars_per_minute / 60));  
  11.     return str_replace('%sec%', $secondsstr_replace('%min%', $minutes$zm_format));  
  12. }  
  13.    
  14. function zm_reading_time() {  
  15.     echo zm_get_reading_time(get_the_content());  
  16. }  

调用文章字数和阅读时间代码

显示文章字数代码:

  1. <?php echo zm_count_words($text); ?>  

显示阅读时间代码:

  1. <?php zm_reading_time(); ?>  

将上述调用代码加到当前主题正文模板的适当位置即可。

不过字数统计和阅读时间不是很精确,特别是阅读时间,更是扯淡,默认是按CCTV广播员语速定的。

写完这篇文章,发现网上有更简洁的代码,区别是上面的代码精确到秒,下面的代码只估算到分。

  1. // 阅读时间  
  2. function count_words_read_time () {  
  3.     global $post;  
  4.     $text_num = mb_strlen(preg_replace('/\s/','',html_entity_decode(strip_tags($post->post_content))),'UTF-8');  
  5.     $read_time = ceil($text_num/300); // 修改数字300调整时间  
  6.     $output .= '本文共计' . $text_num . '个字,预计阅读时长' . $read_time  . '分钟。';  
  7.     return $output;  
  8. }  

调用代码:

  1. <?php echo count_words_read_time(); ?>  
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢,请打赏支持本站,谢谢大家!
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微博
  • 微博扫一扫
  • weinxin
王小优
为WordPress最新文章增加NEW最新提示标志 WordPress美化

为WordPress最新文章增加NEW最新提示标志

纯代码给WordPress文章列表中新发布的文章增加NEW新文章提示,让你的博客更加饱满、人性化,一起跟王小优折腾起来。 看到不少网站的新文章后面都会有一个提示最新文章的文字或者图片,感觉比较人性化,...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: