Роли хранятся в глобальной переменной $wp_roles
.
Идеальная функцияget_editable_roles()
от/wp-admin/includes/user.php
function get_editable_roles() {
global $wp_roles;
$all_roles = $wp_roles->roles;
$editable_roles = apply_filters('editable_roles', $all_roles);
return $editable_roles;
}
«Редактируемые» часть , потому что он предлагает другие плагины возможность фильтрации списка в случае , если кто - то другой , чем администратор имеет 'edit_users'
привилегию (и , таким образом , потребности «администратора» , чтобы удалить из списка, в противном случае , что пользователь может сделать себя админ). Плагины управления ролями, используемые для создания пользовательских ролей, - это те, которые будут использовать этот фильтр. В противном случае эта функция по существу get_roles()
(которая не существует) .
Предположительно, ваш плагин предложит страницу настроек только тому, у кого есть возможности уровня администратора, например, он 'manage_options'
является администратором с доступом ко всем ролям, поэтому фильтр не должен влиять на вас.
Также естьwp_dropdown_roles()
роли в качестве <option>
полей для <select>
списка (хотя флажки, вероятно, будут работать лучше во многих сценариях, когда вы выбираете, кто имеет доступ к чему-либо) .