博客 / WordPress/ WordPress统计文章内图片数量总数

WordPress统计文章内图片数量总数

WordPress统计文章内图片数量总数

WordPress 默认没有提供统计文章内图片数量的函数,因此需要自行添加代码来实现此功能。

这个功能实现起来并不复杂,几行代码即可完成。网上也有不少类似的教程可供参考。

虽然是一个小功能,但可以丰富主题的特性,感兴趣的朋友可以自行测试。

使用方法

首先,将以下代码添加到主题的 functions.php 文件中。

// WordPress 获取文章内图片数量
if ( ! function_exists( 'get_post_images_number' ) ) {
    function get_post_images_number() {
        global $post;
        $content = $post->post_content;
        preg_match_all( '/<img.*?(?: |t|r|n)?src=['"](.+?)['"]/i', $content, $result, PREG_PATTERN_ORDER );
        return count( $result[1] );
    }
}

然后,在需要显示图片数量的地方(例如文章模板中)添加以下调用代码。

注意: 此代码需要放在 WordPress 主循环(The Loop)内部,以确保 $post 对象可用。

<?php echo get_post_images_number() . '张图片'; ?>

代码说明与优化

原正则表达式较为复杂且存在潜在问题。上述代码已进行优化:

  1. 简化了正则表达式,使其更专注于匹配 src 属性值。
  2. 移除了 /sim 中的 s 修饰符(点号匹配所有字符),因为匹配 img 标签通常不需要。
  3. 使用更标准的单引号转义方式 ['"]

如果需要更精确地匹配 WordPress 媒体库插入的图片(可能包含 data-src 等属性),可以考虑使用 get_media_embedded_in_content() 函数,但上述代码对于统计普通 <img> 标签已足够。

发表评论

您的邮箱不会公开。必填项已用 * 标注。