The Multiple Roles Interface function to display the checklist of roles on the user-edit.php page has a filter hook, swt_list_multi_roles_edit, that’s useful for sorting roles or removing an item not already filtered out elsewhere by WordPress.
Requirements
Whatever functions you attach to this hook, they always need to pass in the array $roles as an argument and return $roles as an array of the same form.
Example: Sorting Roles
PHP has lots of functions for sorting and manipulating arrays. Here’s a simple example of how to organize roles in alphabetical order, which may be useful if you have numerous custom roles:
// Sort the roles for display on edit-user.php function sort_the_roles($roles) { asort($roles); return $roles; } add_filter('swt_list_multi_roles', 'sort_the_roles');
If you’re on multisite and you need to apply the filter to just one site — let’s say it’s the site with the ID number of 3 — and ignore the others. A function such as this will return $roles untouched if it’s not the site in question and will sort $roles if it is.
// Sort roles for blog with ID of 3 only function sort_the_roles_on_three($roles) { global $blog_id; if ($blog_id != 3): return $roles; endif; asort($roles); return $roles; } add_filter('swt_list_multi_roles', 'sort_the_roles_on_three');