The get_role_list WordPress PHP filter allows you to modify the array of translated role names for a specific user.
Usage
add_filter('get_role_list', 'your_custom_function', 10, 2); function your_custom_function($role_list, $user_object) { // your custom code here return $role_list; }
Parameters
- $role_list (array) – An array of translated user role names keyed by role.
- $user_object (WP_User) – A WP_User object representing the user.
More information
See WordPress Developer Resources: get_role_list
Examples
Add a custom role label
Add a custom role label to the role list for a user with a specific email address.
add_filter('get_role_list', 'add_custom_role_label', 10, 2); function add_custom_role_label($role_list, $user_object) { if ($user_object->user_email == '[email protected]') { $role_list['custom_role'] = __('Custom Role', 'textdomain'); } return $role_list; }
Remove a role label
Remove the ‘Subscriber’ role label from the role list.
add_filter('get_role_list', 'remove_subscriber_label', 10, 2); function remove_subscriber_label($role_list, $user_object) { unset($role_list['subscriber']); return $role_list; }
Modify role label
Change the ‘Editor’ role label to ‘Content Manager’.
add_filter('get_role_list', 'change_editor_label', 10, 2); function change_editor_label($role_list, $user_object) { $role_list['editor'] = __('Content Manager', 'textdomain'); return $role_list; }
Sort role labels alphabetically
Sort the role list alphabetically by their labels.
add_filter('get_role_list', 'sort_role_labels_alphabetically', 10, 2); function sort_role_labels_alphabetically($role_list, $user_object) { asort($role_list); return $role_list; }
Add a prefix to role labels
Add a prefix to all role labels.
add_filter('get_role_list', 'add_role_label_prefix', 10, 2); function add_role_label_prefix($role_list, $user_object) { foreach ($role_list as $key => $value) { $role_list[$key] = 'Prefix - ' . $value; } return $role_list; }