清理媒体库时按体积排序删了 120 张没用的图,勾了 Delete permanently。第二天监控报 812 个 404,全指向 uploads 下已删除的 jpg,正文里的 img 还留着旧地址。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
wp db query "SELECT ID FROM wp_posts WHERE post_content LIKE '%4521-300x200.jpg%' AND post_status='publish';" wp search-replace 'https://example.com/wp-content/uploads/2026/11/old.jpg' '' --skip-columns=guid
wp_delete_attachment 只处理附件记录和文件,不会去改引用它的 post_content。正文里写死的是完整 URL,文件一删就断,缓存插件还会继续把旧页面发出去。这一点先确认清楚,后面就不用反复试。
「删除附件正文残留」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。
具体做法是,删除前按文件名搜一遍 post_content 统计引用量;仍被引用的附件改成只在媒体库隐藏 不删文件;确实要删的先把正文里的 img 换成占位图或移除。
改完照着核一遍,删除后 404 监控不再新增,正文里被清理的图显示占位块而不是破图。
