在许多国外 WordPress 主题中,我们常能看到“Reading Time(阅读时间)”的功能选项。此外,也有不少插件提供了文章阅读时间的显示功能。不过,由于中英文字符在计算方式上的差异,直接使用这些主题或插件,往往会导致字数统计不准确,尤其是对中文内容而言。
本文将分享一种无需插件、且适用于中文站点的实现方法,让你轻松在 WordPress 文章中显示准确的阅读时间与字数统计。
一、在 functions.php
中添加阅读时间函数
打开你当前使用主题的 functions.php
文件,在文件底部(?>
之前,若无则直接插入到最末行)添加以下代码:
/**
* 为 WordPress 添加文章阅读时间与字数统计
* 原文链接:https://www.zhanzhangb.cn/tutorials/add-reading-time.html
*/
function zzb_reading_time() {
$post = get_post();
$content = $post->post_content;
$wpm = 300; // 每分钟阅读字数,建议针对中文设为300,可根据需要调整
$clean_content = strip_shortcodes($content);
$clean_content = strip_tags($clean_content);
$word_count = mb_strlen($clean_content, 'UTF-8'); // UTF-8 编码下,中文每字计为 1 个
$time = ceil($word_count / $wpm);
return '字数:' . $word_count . ' 个 阅读全文:' . $time . ' 分钟';
}
📌 注意:
此函数依赖 mb_strlen()
,请确保服务器已启用 mbstring
扩展。大部分主机环境默认支持该扩展,你可在 PHP Info 页面中确认是否启用。
管理或添加代码推荐使用 WPCode Pro 插件替代直接编辑 functions.php
文件。
二、在页面合适位置调用函数
将以下代码插入到你想显示阅读信息的位置,例如 single.php
文章模板或循环列表中:
<?php echo zzb_reading_time(); ?>
显示示例:
字数:866 个 阅读全文:3 分钟
三、仅显示阅读时间(可选)
若你只想显示阅读时间而不展示字数,可将函数最后一行修改为如下形式:
return '<span id="read-time"> 阅读全文:' . $time . ' 分钟</span>';
四、自定义样式美化显示效果
你可以将以下样式添加至主题的样式表(style.css)或通过 WordPress 外观 → 自定义 → 额外 CSS 添加:
/* 字数统计样式 */
#read-count {
font-size: 14px;
color: #707070;
}
/* 阅读时间样式 */
#read-time {
font-size: 14px;
color: #878787;
}
结语
通过上述方法,你无需依赖任何插件,即可实现文章阅读时间与字数统计,既提升用户体验,也保持了主题的简洁性与性能。尤其适用于以中文内容为主的博客或网站。
扫码访问小程序中的本文
