好吧,这看起来很棘手,但我认为这是可能的。
在user-new.php
文件调用wp_dropdown_roles()
输出角色列表
wp_dropdown_roles()
函数调用get_editable_roles()
获取要输出的角色列表get_editable_roles()
函数有一个过滤器,editable_roles
.因此,您应该能够为editable_roles
, 这样,如果当前页面user-new.php
, 您取消设置administrator
从…起$editable_roles
.如果你能给我函数的代码,那就太棒了。php文件。
这完全没有经过测试,但应该会让你朝着正确的方向前进。我假设$editable_roles
是用户角色的数组,例如。array( \'subscriber\', \'author\', \'editor\', \'administrator\' )
, 但我还没有证实。
<?php
function wpse_40897_filter_get_editable_roles_for_new_user( $editable_roles ) {
global $pagenow;
if ( \'user-new.php\' == $pagenow ) {
unset( $editable_roles[\'administrator\'] );
}
return $editable_roles;
}
add_filter( \'editable_roles\', \'wpse_40897_filter_get_editable_roles_for_new_user\' );
?>
Caveat: 这不是交钥匙代码,而只是示例代码。如果你不喜欢用它去你需要的地方,那么我不建议你用它来做仿意大利面。