WordPress | Create custom user role

This time i’m working on a Blog.
It’s a Blog about wine and winery, can have a lot contributors & authors, so, the customer request more roles than wordpress offer, fortunately, wordpress has ability to manage custom role.

We want create custom role and then query about them.

For create a custom role ( like the authors role ), add this snippets directly in your theme function.php :

/* Aggiunto User Blog Author */

add_role(
    'blog_author', // The name of the new role
    __( 'Blog Author' ), // the label of the new role
    array( // The Capabilities of the new role
        'read'         => true,  // true allows this capability
        'edit_published_posts'   => true,
        'edit_posts'   => true,
        'delete_published_posts' => true,
        'delete_posts' => true,
        'publish_posts' => true,
        'upload_files' => true,
    )
);

Now we need to loop over the new role for an ” Blog Authors “page :

<?php $args = array( 'orderby' => 'display_name', 'order' => 'ASC', 'role' => 'blog_author' );
			$authors = get_users( $args );
			foreach ( $authors as $author ) { 
$author__first_name = get_the_author_meta( 'first_name', $author->ID );
				$author__last_name = get_the_author_meta( 'last_name', $author->ID );
?>
<h3 class="title"><?php echo $author__printable_name .' '. $author__printable_lastname; ?></h3>
}

That’s all, In this way, you can add and manage all roles that you ( or your customer … ) need.