Voila comment ajouter un rôle utilisateur supplémentaire à WordPress. Ici j’ai souhaité me baser sur le rôle classique de l’Auteur en lui octroyant des droits du rôle Editeur sans ceux sur les pages :
function modify_capabilities() {
$editor_role = get_role('author');
add_role('authorplus', 'AuteurPlus', $editor_role->capabilities);
$owner_role = get_role('authorplus');
$owner_role->add_cap('edit_others_posts');
$owner_role->add_cap('delete_others_posts');
$owner_role->add_cap('read_private_posts');
$owner_role->add_cap('delete_private_posts');
$owner_role->add_cap('edit_private_posts');
$owner_role->add_cap('unfiltered_html');
$owner_role->add_cap('moderate_comments');
$owner_role->add_cap('manage_categories');
$owner_role->add_cap('manage_links');
}
add_action('init','modify_capabilities');
Mon nouveau rôle peut donc éditer ou supprimer les articles d’autres utilisateurs; voir, éditer ou supprimer les articles privés; utiliser du html enrichi dans les articles, modérer les commentaires, les catégories et les liens. Il ne peut cependant pas ajouter, modifier ou supprimer des pages. Il suffit d’insérer ce code dans votre fichier function.php
Pour une liste complète des différents rôle voici la page du Codex : Roles and Capabilities
Le nouveau rôle est définitif : même si vous supprimez ces lignes de votre fichier function.php, le rôle AuteurPlus existera toujours.
Pour le supprimer, remplacez les précédentes lignes par les suivantes :
$wp_roles = new WP_Roles();
$wp_roles->remove_role("authorplus");
Une fois votre fichier function.php enregistré le rôle AuteurPlus sera supprimé pour de bon (même si vous supprimez ces lignes de votre thème).
Si vous ne souhaitez pas mettre les mains dans le cambouis le plugin User Role Editor est très simple d’utilisation.