新建“内容审核”角色,直接访问 admin.php?page=review 能打开页面,左侧菜单里找不到这一项,其他管理员能看到。乍看像缓存或者权限的锅,追下去往往不是。

$role = get_role('reviewer');
$role->add_cap('review_content');
add_menu_page('内容审核', '内容审核', 'review_content', 'review', 'render_review');

追下去是这么回事:add_menu_page 的 capability 写的是 manage_options,这个角色只有 review_content。菜单在构建时按 capability 过滤,页面本身只校验登录,于是出现能进页面却看不到入口。

「自定义角色后台菜单」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。

监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

具体做法是,给角色补上 review_content 权限;把菜单的 capability 改成同一个字符串;让该角色重新登录 刷新权限缓存。

验收就看一点,该角色登录后左侧出现“内容审核”,订阅者账号仍然看不到。

作者 9823189