Title: wp_roles
Published: August 18, 2015
Last modified: February 24, 2026

---

# wp_roles(): 󠀁[WP_Roles](https://developer.wordpress.org/reference/classes/wp_roles/)󠁿

## In this article

 * [Return](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#wp--skip-link--target)

Retrieves the global [WP_Roles](https://developer.wordpress.org/reference/classes/wp_roles/)
instance and instantiates it if necessary.

## 󠀁[Return](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#return)󠁿

 [WP_Roles](https://developer.wordpress.org/reference/classes/wp_roles/) [WP_Roles](https://developer.wordpress.org/reference/classes/wp_roles/)
global instance if not already instantiated.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#source)󠁿

    ```php
    function wp_roles() {
    	global $wp_roles;

    	if ( ! isset( $wp_roles ) ) {
    		$wp_roles = new WP_Roles();
    	}
    	return $wp_roles;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/capabilities.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/capabilities.php#L1081)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/capabilities.php#L1081-L1088)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#related)󠁿

| Uses | Description | 
| [WP_Roles::__construct()](https://developer.wordpress.org/reference/classes/wp_roles/__construct/)`wp-includes/class-wp-roles.php` |

Constructor.

  |

| Used by | Description | 
| [wp_switch_roles_and_user()](https://developer.wordpress.org/reference/functions/wp_switch_roles_and_user/)`wp-includes/ms-blogs.php` |

Switches the initialized roles and current user capabilities to another site.

  | 
| [wp_get_users_with_no_role()](https://developer.wordpress.org/reference/functions/wp_get_users_with_no_role/)`wp-includes/user.php` |

Gets the user IDs of all users with no role on this site.

  | 
| [WP_Users_List_Table::get_role_list()](https://developer.wordpress.org/reference/classes/wp_users_list_table/get_role_list/)`wp-admin/includes/class-wp-users-list-table.php` |

Returns an array of translated user role names for a given user object.

  | 
| [populate_roles()](https://developer.wordpress.org/reference/functions/populate_roles/)`wp-admin/includes/schema.php` |

Execute WordPress role creation for the various WordPress versions.

  | 
| [edit_user()](https://developer.wordpress.org/reference/functions/edit_user/)`wp-admin/includes/user.php` |

Edit user settings based on contents of $_POST

  | 
| [get_editable_roles()](https://developer.wordpress.org/reference/functions/get_editable_roles/)`wp-admin/includes/user.php` |

Fetch a filtered list of user roles that the current user is allowed to edit.

  | 
| [WP_Users_List_Table::get_views()](https://developer.wordpress.org/reference/classes/wp_users_list_table/get_views/)`wp-admin/includes/class-wp-users-list-table.php` |

Returns an associative array listing all the views that can be used with this table.

  | 
| [WP_User::get_role_caps()](https://developer.wordpress.org/reference/classes/wp_user/get_role_caps/)`wp-includes/class-wp-user.php` |

Retrieves all of the capabilities of the user’s roles, and merges them with individual user capabilities.

  | 
| [WP_Role::add_cap()](https://developer.wordpress.org/reference/classes/wp_role/add_cap/)`wp-includes/class-wp-role.php` |

Assign role a capability.

  | 
| [WP_Role::remove_cap()](https://developer.wordpress.org/reference/classes/wp_role/remove_cap/)`wp-includes/class-wp-role.php` |

Removes a capability from a role.

  | 
| [get_role()](https://developer.wordpress.org/reference/functions/get_role/)`wp-includes/capabilities.php` |

Retrieves role object.

  | 
| [remove_role()](https://developer.wordpress.org/reference/functions/remove_role/)`wp-includes/capabilities.php` |

Removes a role, if it exists.

  | 
| [add_role()](https://developer.wordpress.org/reference/functions/add_role/)`wp-includes/capabilities.php` |

Adds a role, if it does not exist.

  | 
| [count_users()](https://developer.wordpress.org/reference/functions/count_users/)`wp-includes/user.php` |

Counts number of users who have each of the user roles.

  |

[Show 9 more](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#)

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/wp_roles/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.3.0](https://developer.wordpress.org/reference/since/4.3.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Fwp_roles%2F)
before being able to contribute a note or feedback.