在WordPress文章页调用阅读时间,有直接使用代码和安装插件两种方式。如果只需要简单功能,推荐使用代码方式,更轻量可控;如果希望有更多自定义选项或不想操作代码,可以直接安装插件。
方法一:在主题的functions.php中添加函数
这是目前最推荐的方式,针对中文内容优化,不依赖插件。
第一步:将以下代码添加到您当前主题的functions.php文件中
// 自定义文章阅读时间
function custom_reading_time() {
global $post;
// 获取文章内容,并去除HTML标签和短代码
$content = strip_shortcodes( $post->post_content );
$content = strip_tags( $content );
// 计算中文字符数 (使用mb_strlen)
$text_num = mb_strlen( $content, 'UTF-8' );
// 设定每分钟阅读字数,中文建议设为300,可根据需要调整[citation:2]
$words_per_minute = 300;
// 计算阅读分钟数,并向上取整
$read_time = ceil( $text_num / $words_per_minute );
// 返回阅读时间文本,您可以根据需要修改这里的显示格式
return '预计阅读时长:' . $read_time . ' 分钟';
}
注意:mb_strlen() 函数依赖服务器的mbstring扩展,大部分主机都已默认支持。
第二步:在文章页模板中调用函数
找到主题中的single.php文件,在您希望显示阅读时间的位置(例如文章标题下方、内容之前),插入以下调用代码:
<span class="read-time">
<?php echo custom_reading_time(); ?>
</span>
如果您希望阅读时间自动出现在文章内容最前面,可以将以下代码添加到functions.php中:
// 将阅读时间自动添加到文章内容之前
function add_reading_time_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$reading_time_html = '<div class="reading-time">' . custom_reading_time() . '</div>';
return $reading_time_html . $content;
}
return $content;
}
add_filter( 'the_content', 'add_reading_time_to_content' );
方法二:使用插件(更简单、自定义选项多)
如果不想编辑代码,安装插件是更快捷的选择。以下是两款评价不错的插件:
GlitchSolvers Reading Time Estimator:提供简码 [glitchsolvers_reading_time],可在设置中调整阅读速度(默认200词/分钟)和显示格式。
Sam Reading Time:同样提供简码 [sam_reading_time],在 “Posts > Reading Time Settings” 可以调整每分钟阅读词数和前后缀文字。
安装后,您可以在文章内容中直接插入对应的简码,或在模板文件中使用
<?php echo do_shortcode('[简码]'); ?>
进行调用。
如何调整阅读速度?
代码中的 $words_per_minute = 300; 这一行就是设定阅读速度的。如果您觉得估算时间偏长或偏短,可以修改这个数字。数值越大,计算出的阅读时间就越短。对于中文内容,一般建议设为 300 字/分钟。
原文

230

被折叠的 条评论
为什么被折叠?



