WordPress WebP 上传核对
先读这个站点已经写明的图片格式政策,再判断上传结果。接口返回成功或附件编号出现,都不够。声称产出 WebP 时,文件必须能解码,alt 符合来源,原图策略也被遵守。
何时使用
用户要求核对 WordPress 媒体上传、侧载、WebP 结果、alt 或原图是否还留在服务器时使用。没有另行授权时,不删除已有媒体,也不改上传权限。
两条入口都要实测
标准媒体库上传和程序侧载是两条路径。侧载包括把本地文件交给 media_handle_sideload,以及站点实际使用的官方上传 API。代码里出现某个钩子,只说明有机会经过,不说明这次请求经过了。
对每条声称已覆盖的入口,各上传一次真实图片,再按下面的标准检查结果。
WebP 结果
- 附件 URL、磁盘文件和网页实际请求的类型都是 WebP,MIME 为
image/webp。 - 用解码器读出宽高,并与预期画面一致。文件头像 WebP 但解不开,算失败。
- 比对字节或哈希。只比较文件名不够。
- 响应式子尺寸如果也是 WebP,它们是派生物,不是“原图还在”的证据,也不是原图已被删除的反证。
格式失败时怎么处理,以该站点自己的政策为准,不是所有 WordPress 站点的通用要求。
- 政策写明只接受 WebP:转换失败或格式不受支持时,上传应报错。媒体库不新增坏附件,磁盘不把原格式留成一次成功上传,也不要静默退回 JPEG 或 PNG。
- 政策允许其他格式:按该政策验收实际保存的格式。不要凭本技能要求对方改成严格 WebP,也不要替它打开或关闭格式转换。
原图策略
先读取这个站点已经写明的策略,再验收。
- 策略是成功后不保留 JPEG、PNG 等原图:检查这次上传的目录,没有这次的原格式文件和失败临时文件。只保留需要展示的 WebP 及必要的 WebP 子尺寸。
- 策略是保留原图:原图还在才算通过。不要为了让目录变干净而删掉它们。
本次上传自己产生的失败临时文件,可以随这次失败清理。这不等于授权去删媒体库里的旧文件。
alt 与标题
- 已有人工填写的 alt 和标题保持原样,不用文件名覆盖。
- 只有字段为空时,才可以用清理后的描述性文件名补默认值。
- 相机流水号、随机哈希或空泛标题不能编造成画面描述;留空或标成待编辑。
- 装饰图可以空 alt。alt 不是关键词列表,说明文字也不要复制同一句到标题、alt 和描述。
- 页面上 img 的 alt 与媒体库字段一致。
删除和权限
删除、替换或批量清理已经存在的附件,必须有这次任务之外已经写明的授权。没有授权就停止。
不要用更高权限的系统用户绕过媒体库限制,不要关闭校验、放宽允许的类型,或把检查改成总是成功。上传者和验收者使用用户提供的现有权限。
停止
任一条入口没有真正走到、声称的 WebP 不能解码、alt 被改坏、原图或格式政策被违反,或需要未授权删除时,报告差异并停止。不要改站点的格式政策或存储策略来迁就这次检查。
使用与许可
大神网原创,允许个人学习和使用;商业再分发请联系作者










