清理测试账号时点了删除,前台几篇文章的作者栏变成空白,后台列表里作者一列也是空的,用户找不到入口。乍看像缓存或者权限的锅,追下去往往不是。

wp post update 42 --post_author=1
wp user delete 15 --reassign=1
# 核对空作者的文章
wp post list --post_type=post --author=0

追下去是这么回事:删除时没有指定内容接收人,文章留在库里但作者字段指向了已经不存在的编号,前台读取时自然拿到空值,列表也不显示。

「WordPress 删除用户文章归属」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

具体做法是,删除之前先把手上的文章转给一个确定的接收账号;调用删除函数的时候要带上接收人的编号参数;批量操作之前先跑一次查询,核对还有没有孤儿文章。

验收就看一点,文章作者显示为接收账号,列表里再没有空作者的文章,前台也正常。

作者 9823189