把卡片图从 768 改成 480,模板也一起换了,前台请求到的还是 768 那张,地址后缀跟着旧尺寸走,清了缓存也没用。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
add_image_size('card', 480, 320, true);
wp media regenerate --only-missing --yes
新规格只对之后上传的附件生效,存量附件的元数据里根本没有这一项,取图函数找不到就回退到最接近的旧尺寸,模板改了也没用。这一点先确认清楚,后面就不用反复试。
「缩略图尺寸未生效」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
具体做法是,先确认新尺寸已经在主题初始化的钩子里注册过;再用命令行把存量附件按缺失项重新生成一遍;清掉页面缓存和加速缓存 再看实际请求的图片地址。
改完照着核一遍,前台请求的地址后缀变成 480x320,卡片里的图片也没有被拉伸变形。
