哈儿哥

中国品牌出海 海外网络营销推广

标签: 非插件

  • wordpress文章页调用此文章的阅读时间

    在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 字/分钟。