您可以删除\'switch_themes\'
来自\'administrator\'
角色,该角色应防止常规管理员(而不是网络超级管理员)切换其主题。尝试以下操作:
add_action(\'admin_init\', \'custom_remove_switch_themes_role_from_admins\');
function custom_remove_switch_themes_role_from_admins(){
global $wp_roles;
$wp_roles->remove_cap(\'administrator\', \'switch_themes\');
}
编辑:
通过对上述函数进行更广泛的测试,我注意到了一些问题,当我删除了一个cap,然后在完成测试时没有显式地重新添加它(它似乎实际上是从数据库中删除它,而不仅仅是针对当前页面)。这没关系,但要小心!如果您对此不太满意,请尝试以下方法,它会拦截所有角色的功能,而不仅仅是管理员(请注意,网络管理员被排除在外,因为他们拥有所有功能):
add_filter(\'user_has_cap\', \'custom_remove_switch_themes_capability\', 10, 3);
function custom_remove_switch_themes_capability($all_caps, $caps, $args){
if (\'switch_themes\' == $args[0]) // You can chain additional caps (using or) here if desired
return array();
else
return $all_caps;
}