这个wp_dropdown_roles()
函数内部使用get_editable_roles()
获取所需的角色。它只从全局获取角色:
$all_roles = $GLOBALS[\'wp_roles\']->roles;
然后进行过滤:
return apply_filters( \'editable_roles\', $all_roles );
因此,您只需将以下函数添加到插件或
functions.php
主题文件:
function wpse137935_filter_editable_roles( Array $roles )
{
// Don\'t conflict and remove immediately
remove_filter( current_filter(), __FUNCTION__ );
// Do any logic in here that appends or removes roles
return $roles;
}
然后,就在
wp_dropdown_roles()
, 您添加:
add_filter( \'editable_roles\', \'wpse137935_filter_editable_roles\' );
重要的是,如果其他插件或主题在其他地方调用相同的函数,请尽可能晚地添加过滤器,以免它们崩溃到其他插件或主题中。