文章页 img 只带 src 和 sizes,srcset 里就一个原图地址。手机下载的仍是 1600px 宽的大图,单张 480KB,PageSpeed 提示 Properly size images。乍看像缓存或者权限的锅,追下去往往不是。

add_image_size('content-768', 768, 0, false);
add_image_size('content-1024', 1024, 0, false);
wp media regenerate --yes

追下去是这么回事:主题的 add_image_size 只注册了 thumbnail 和原图附近两档,没有 768 和 1024,wp_calculate_image_srcset 找不到候选就退回单地址。图片本身小于 1200px 时同样不会输出多档。

碰到「srcset 缺中间尺寸」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

具体做法是,补注册 768 和 1024 两档 宽度按内容区实际像素来定;对已有附件重新生成 新尺寸只对新图生效;确认主题用 wp_get_attachment_image 输出 而不是自己拼 img。

验收就看一点,文章页 img 的 srcset 出现三个宽度,手机实际下载的是 768 那一档。

作者 9823189