SELECT post_status, COUNT(*) n FROM wp_posts GROUP BY 1;
DELETE FROM wp_posts WHERE post_status='auto-draft';
wp post list --post_status=auto-draft --format=count

wp_posts 里躺着六千多条 post_status 为 auto-draft 的记录 标题全是空的 后台文章列表翻页却越来越慢 打开一次就多一条 没人清理。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:每次点新建文章 WordPress 先插一条 auto-draft 占位 编辑器没保存就退出 这条记录不会自己消失 几年下来堆成了负担 查询越来越慢 还占着 ID。

这次卡住的地方就在「自动草稿堆积」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

处理上按这个顺序:先按 post_status 分组统计一下 确认 auto-draft 的具体数量和最早日期;只删 auto-draft 这类记录 别顺手把 revision 和 trash 这两类记录整批也清掉;删除后重建一次文章列表的索引统计 后台翻页会快回来。

确认没问题再收工,后台新建文章列表恢复正常 再查一次 auto-draft 记录数已经是 0 很干净。

作者 9823189