[wp-hackers] Get list of roles

Raj list at expost.org
Sun Sep 12 14:59:29 UTC 2010

get_editable_roles() causes  a undefined function error when called as a
part of the init. It works if the plugin calls it as part of some hook such
as admin_head. Shouldn't it work when called from within a function attached
to init?

-----Original Message-----
From: wp-hackers-bounces at lists.automattic.com
[mailto:wp-hackers-bounces at lists.automattic.com] On Behalf Of Jeremy Clarke
Sent: Sunday, September 12, 2010 1:01 AM
To: wp-hackers at lists.automattic.com
Subject: Re: [wp-hackers] Get list of roles

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
wp-hackers mailing list
wp-hackers at lists.automattic.com

More information about the wp-hackers mailing list