这将删除更改用户组的选项,除非这是管理员。
这个Codex 国家:
虽然部分支持针对特定角色而不是功能进行检查,但不鼓励这种做法,因为它可能会产生不可靠的结果。
因此,我检查activate_plugins
通常只有管理员才具有的功能。
function dont_allow_role_change($all_roles) {
global $user_id;
$user_meta = get_userdata($user_id);
if(!current_user_can(\'activate_plugins\') && is_int($user_id)){
foreach ( $all_roles as $name => $role ) {
if (!in_array($name,$user_meta->roles)) {
unset($all_roles[$name]);
}
}
}
return $all_roles;
}
add_filter(\'editable_roles\', \'dont_allow_role_change\');