wp cap list author
wp cap remove author edit_others_posts
wp user list --role=author --fields=ID,user_login

实习生的账号能打开主编的草稿并直接发布,账号角色显示的是「作者」,理论上只能动自己的文章,实际列表里二十多篇别人的稿子都能编辑。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:自定义角色在初始化时把 edit_others_posts 一并加上了,或者权限插件把编辑能力复制给了 author。角色定义一旦写进数据库,改代码不会自动回收。

「编辑权限过宽」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

处理上按这个顺序:用权限表逐个核对角色的 capability,别只看后台说明;把 edit_others_posts 从 author 和自定义角色上移除;发布权限单独给,编辑和发布拆成两级;改完用低权限账号试一遍删除和发布操作。

确认没问题再收工,实习生账号打开别人的草稿只能查看,发布按钮不可用,接口返回 403。

作者 9823189