wp media regenerate --only-missing --yes
# 检查元数据里还记着多少 jpg
wp post meta get 123 _wp_attachment_metadata --format=json | grep -o '\.jpg' | wc -l

媒体库列表每张图都是灰底破图,点开附件详情原图能正常显示。开发者工具里 -150x150.jpg 返回 404,同目录只剩下 -150x150.webp。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,图片优化插件把生成的缩略图转成 WebP 后删掉了 jpg,_wp_attachment_metadata 里的 sizes 仍记录 jpg 文件名。媒体库按元数据拼地址,请求自然落到不存在的文件上。

这次卡住的地方就在「缩略图 WebP 替换后裂图」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

处理上按这个顺序:先关掉插件的删除原图选项 把已转的 jpg 从备份补回来;用 wp media regenerate 重新生成一遍 让元数据指向实际文件;需要 WebP 时交给 picture 标签协商 不要让插件直接替换文件。

改完只确认一件事:媒体库列表缩略图恢复显示,Network 面板里 -150x150.jpg 的请求返回 200。

作者 9823189