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

作者: SillyLi 分类: 源码教程 发布时间: 2019-02-01 19:27
本文共1505字1张图片,预计阅读时间需要5分钟。

以下代码来自网络整合得出:

在模板的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

具体效果可见本博 下图:

注:参考知乎等资料用代码用 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的改下来都是小意思

发表评论

电子邮件地址不会被公开。 必填项已用*标注