You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写MySQL查询统计WordPress中图片的使用频率?

统计WordPress中图片的使用频率(基于wp_posts表)

当然可以通过MySQL查询实现这个需求。WordPress的文章内容存储在wp_posts表的post_content字段中,图片的URL通常包含在<img>标签的src属性里,我们可以通过正则提取这些URL并分组计数。

场景1:统计图片在所有文章中的总出现次数

这个查询会统计每张图片在所有已发布内容里的出现次数(包括同一篇文章内的重复引用):

SELECT
    TRIM(REGEXP_SUBSTR(post_content, '<img[^>]+src="([^"]+)"', 1, 1, 'i', 1)) AS image_url,
    COUNT(*) AS total_usage
FROM wp_posts
WHERE post_type = 'post' -- 可替换为page、custom_post_type等自定义内容类型
    AND post_status = 'publish'
    AND post_content REGEXP '<img[^>]+src="[^"]+"'
GROUP BY image_url
ORDER BY total_usage DESC;

场景2:统计图片被多少篇不同文章引用

如果需要统计每张图片被多少篇独立文章引用(排除同一篇文章内的重复计数),可以用以下查询:

SELECT
    TRIM(REGEXP_SUBSTR(post_content, '<img[^>]+src="([^"]+)"', 1, 1, 'i', 1)) AS image_url,
    COUNT(DISTINCT ID) AS referenced_posts
FROM wp_posts
WHERE post_type = 'post'
    AND post_status = 'publish'
    AND post_content REGEXP '<img[^>]+src="[^"]+"'
GROUP BY image_url
ORDER BY referenced_posts DESC;

关键说明与优化

  • 表前缀替换:如果你的WordPress表前缀不是wp_,请将查询中的wp_posts替换为实际表名(比如wp_blog_posts)。
  • 兼容单引号src:如果图片标签使用单引号包裹src(如<img src='xxx.jpg'>),可以把正则调整为<img[^>]+src=['"]([^'"]+)['"],同时修改REGEXP_SUBSTR的匹配参数。
  • 过滤本地图片:如果只需要统计WordPress媒体库的图片,可以在查询末尾添加HAVING image_url LIKE '%/wp-content/uploads/%'。
  • 正则局限性:复杂的HTML结构(如嵌套标签、转义字符)可能导致少数URL提取不准确,若需要更精准的处理,建议结合后端语言解析HTML。

内容的提问来源于stack exchange,提问作者asbl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 09:07:19