add_role

The timeline below displays how wordpress function add_role has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Adds a role, if it does not exist.
 *
 * @since 2.0.0
 *
 * @param string $role         Role name.
 * @param string $display_name Display name for role.
 * @param bool[] $capabilities List of capabilities keyed by the capability name,
 *                             e.g. array( 'edit_posts' => true, 'delete_posts' => false ).
 * @return WP_Role|void WP_Role object, if the role is added.
 */
function add_role($role, $display_name, $capabilities = array())
{
    if (empty($role)) {
        return;
    }
    return wp_roles()->add_role($role, $display_name, $capabilities);
}

WordPress Version: 5.4

/**
 * Add role, if it does not exist.
 *
 * @since 2.0.0
 *
 * @param string $role         Role name.
 * @param string $display_name Display name for role.
 * @param bool[] $capabilities List of capabilities keyed by the capability name,
 *                             e.g. array( 'edit_posts' => true, 'delete_posts' => false ).
 * @return WP_Role|null WP_Role object if role is added, null if already exists.
 */
function add_role($role, $display_name, $capabilities = array())
{
    if (empty($role)) {
        return;
    }
    return wp_roles()->add_role($role, $display_name, $capabilities);
}

WordPress Version: 4.4

/**
 * Add role, if it does not exist.
 *
 * @since 2.0.0
 *
 * @param string $role Role name.
 * @param string $display_name Display name for role.
 * @param array $capabilities List of capabilities, e.g. array( 'edit_posts' => true, 'delete_posts' => false );
 * @return WP_Role|null WP_Role object if role is added, null if already exists.
 */
function add_role($role, $display_name, $capabilities = array())
{
    if (empty($role)) {
        return;
    }
    return wp_roles()->add_role($role, $display_name, $capabilities);
}

WordPress Version: 4.3

/**
 * Add role, if it does not exist.
 *
 * @since 2.0.0
 *
 * @param string $role Role name.
 * @param string $display_name Display name for role.
 * @param array $capabilities List of capabilities, e.g. array( 'edit_posts' => true, 'delete_posts' => false );
 * @return WP_Role|null WP_Role object if role is added, null if already exists.
 */
function add_role($role, $display_name, $capabilities = array())
{
    return wp_roles()->add_role($role, $display_name, $capabilities);
}

WordPress Version: 3.7

/**
 * Add role, if it does not exist.
 *
 * @see WP_Roles::add_role() Uses method to add role.
 * @since 2.0.0
 *
 * @param string $role Role name.
 * @param string $display_name Display name for role.
 * @param array $capabilities List of capabilities, e.g. array( 'edit_posts' => true, 'delete_posts' => false );
 * @return WP_Role|null WP_Role object if role is added, null if already exists.
 */
function add_role($role, $display_name, $capabilities = array())
{
    global $wp_roles;
    if (!isset($wp_roles)) {
        $wp_roles = new WP_Roles();
    }
    return $wp_roles->add_role($role, $display_name, $capabilities);
}