在我的多站点网络中,我使用“用户角色编辑器”插件为角色分配功能。我希望子站点的站点管理员(administrators)能够将任何用户的角色更改为超级管理员角色以外的任何其他角色。根据我有限的理解,实现这一点的唯一方法是在用户列表页面上的“将角色更改为”菜单选项中隐藏超级管理员角色。
我可以使用以下可用代码隐藏上述菜单的管理员和编辑器角色here:
function wdm_user_role_dropdown($all_roles) {
global $pagenow;
if( current_user_can(\'editor\') && $pagenow == \'user-edit.php\' ) {
// if current user is editor AND current page is edit user page
unset($all_roles[\'administrator\']);
unset($all_roles[\'editor\']);
}
return $all_roles;
}
add_action (\'editable_roles\',\'wdm_user_role_dropdown\');
基于此,我尝试使用以下代码根据需要隐藏超级管理员角色:
function schoolers_user_role_dropdown($all_roles) {
global $pagenow;
if( current_user_can(\'remove_users\') && $pagenow == \'user-edit.php\' ) {
// if current user can "remove_users" AND current page is edit user page
unset($all_roles[\'administrator\']);
unset($all_roles[\'superadmin\']);
}
return $all_roles;
}
add_action(\'editable_roles\',\'schoolers_user_role_dropdown\');
然而,这段修改过的代码并没有隐藏超级管理员。
在编辑参考代码时,我假设超级管理员角色的slug是superadmin或Super\\u admin。但当两者都不起作用时,我搜索了所需的slug,偶然发现超级管理员角色没有slug。因此,我们可能无法像那样隐藏超级管理员。
是否有人可以建议对上述代码进行更正和/或帮助使用其他方法来实现我所需要的?
谢谢