为WordPress添加显示文章图片、文字个数和阅读时间功能

为WordPress添加显示文章图片、文字个数和阅读时间功能

本教程根据网络整合并在本站应用后得出。

首先在网站模板的functions.php中添加以下代码:

//字数、图片个数和预计阅读时间统计
function count_words_img_read_time () {
global $post;
  $content = $post->post_content;
  preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $result, PREG_PATTERN_ORDER);
  $img_num = count($result[1]);
  if($img_num<=0){$img_num = '没有图片';}else{$img_num.='张图片';}
  $text_num = mb_strlen(preg_replace('/\s/','',html_entity_decode(strip_tags($content))),'UTF-8');
  $read_time = ceil($text_num/350);
  $output .= '本文共'.$text_num.'字'.$img_num.',预计阅读时间需要'.$read_time.'分钟。';
  return $output;
}

注:该文件一般在/wp-content/themes/主题文件夹/ functions.php
正常情况下直接在WP仪表盘>外观>编辑即可修改

在需要调用的前端添加

<?php echo count_words_img_read_time(); ?>

注:文章页一般为single.php,根据主题不同需要修改的地方不同需要有一定PHP和HTML基础。

具体效果可见本站点 下图:

文章字数预告展示页面

注:参考知乎等资料用代码用 350字/分钟 作为阅读速度计算,可自行修改。修改代码中350即可
注:文章没有图片时会显示[没有图片] 将代码中 没有图片文字删除就在没图片时不做提示

若在首页文章列表也显示个数的整合代码:

//字数、图片个数和预计阅读时间统计
function count_words_img_read_time ($type) {
global $post;
  $content = $post->post_content;
  preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $result, PREG_PATTERN_ORDER);
  $img_num = count($result[1]);
  if($img_num<=0){$img_num = '没有图片';}else{$img_num.='张图片';}
  $text_num = mb_strlen(preg_replace('/\s/','',html_entity_decode(strip_tags($content))),'UTF-8');
  $read_time = ceil($text_num/350);
	if($type=='1'){$output .= $text_num.'字';}else{$output .= '本文共'.$text_num.'字'.$img_num.',预计阅读时间需要'.$read_time.'分钟。';}
  return $output;
}

那么在首页文章列表需要显示处加入

<?php echo count_words_img_read_time('1'); ?>

展示效果:

在文章页面则需要加入

<?php echo count_words_img_read_time('0'); ?>

其实就是输出了两种不同格式供大家参考 会PHP的改下来都是小意思~