WP_Roles::add_role()publicWP 2.0.0

Adds a role name with capabilities to the list.

Updates the list of roles, if the role doesn't already exist.

The capabilities are defined in the following format: array('read'=> true ). To explicitly deny the role a capability, set the value for that capability to false.

Method of the class: WP_Roles{}

No Hooks.

Return

WP_Role|null. WP_Role object, if the role is added.

Usage

global $wp_roles;
$wp_roles->add_role( $role, $display_name, $capabilities );
$role(string) (required)
Role name.
$display_name(string) (required)
Role display name.
$capabilities(bool[])
List of capabilities keyed by the capability name, e.g. array('edit_posts'=> true,'delete_posts'=> false ).
Default: empty array

Changelog

Since 2.0.0 Introduced.

WP_Roles::add_role() code WP 6.5.2

public function add_role( $role, $display_name, $capabilities = array() ) {
	if ( empty( $role ) || isset( $this->roles[ $role ] ) ) {
		return;
	}

	$this->roles[ $role ] = array(
		'name'         => $display_name,
		'capabilities' => $capabilities,
	);
	if ( $this->use_db ) {
		update_option( $this->role_key, $this->roles );
	}
	$this->role_objects[ $role ] = new WP_Role( $role, $capabilities );
	$this->role_names[ $role ]   = $display_name;
	return $this->role_objects[ $role ];
}