[wp-hackers] Get list of roles

Jeremy Clarke jer at simianuprising.com
Sat Sep 11 19:30:42 UTC 2010

The ideal function is get_editable_roles() from /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;

It's basically the same as above but its API and thus better. It will offer
plugins a chance to filter the list in case someone other than admin has
'edit_users' privilege (and thus 'admin' needs to be removed from the list,
else that user could make themselves admin).

Presumably your plugin will only offer the settings page in question to
someone who has admin-level capabilities like 'manage_options' and is
basically an admin with access to all roles, so the filter shouldn't affect

There is also wp_dropdown_roles() which gives you the roles as <option>
fields for a <select> (though checkboxes are likely to work better in many
scenarios where you're choosing who has access to something).

Jeremy Clarke | http://jeremyclarke.org
Code and Design | http://globalvoicesonline.org

More information about the wp-hackers mailing list