Gérer les rôles utilisateurs dans WordPress
Gérer les roles utilisateurs dans wordpress

Gérer les rôles utilisateurs dans WordPress

Niveau intermédiaire
0 0 votes
Évaluation de l'article

Dans ce tutoriel, je vous expliquerai en détail les rôles utilisateurs dans WordPress. Leur fonction, comment en ajouter, comment modifier leurs capacités… Ils n’auront plus de secrets pour vous.

Qu’est-ce que les rôles utilisateurs dans WordPress ?

Les rôles par défaut dans WordPress offrent une hiérarchie de permissions / capacités qui permettent de gérer efficacement les tâches et les responsabilités des utilisateurs.
Les rôles utilisateurs veillent à la sécurité et à la qualité du contenu. Ils jouent un rôle important dans la structuration et la gestion d’un site WordPress, tout en favorisant une expérience utilisateur adaptée à chaque profil.
Il est également possible de créer des rôles personnalisés ou d’en avoir d’autres supplémentaires en fonctions des plugins installés sur votre site.

Quels sont les rôles de base d’un site WordPress ?

  • Le Super Admin : Nous ne le retrouvons que dans le cas d’un multisite. C’est-à-dire une installation de WordPress qui comprend plusieurs sites WordPress sous la même interface. Dans le contexte des rôles utilisateurs, le Super Admin joue un rôle clé dans la gestion de l’administration des sites du réseau.
  • L’Administrateur : Il a tous les pouvoirs sur le site et est donc essentiel dans la gestion des rôles utilisateurs. Il peut effectuer toutes les tâches telles que l’installation de thèmes, de plugins, la création d’utilisateurs, l’accès aux fichiers et leur modification, l’accès à tout le contenu… Il est très important de sécuriser ce compte, car il peut influencer les rôles attribués aux autres utilisateurs.
  • L’Éditeur : Dans le contexte des rôles utilisateurs, l’Éditeur joue un rôle de modération et de gestion des publications. Il est responsable de la publication des articles et peut interagir avec les contenus des autres utilisateurs. Cependant, il n’a pas accès aux aspects administratifs du site. L’Éditeur est un acteur important pour assurer la qualité du contenu et le respect des directives éditoriales.
  • L’Auteur : Dans le cadre des rôles utilisateurs, l’Auteur est chargé de créer et de gérer ses propres publications. Il peut interagir avec ses propres articles et a accès aux médias pour illustrer ses contenus. L’Auteur contribue activement à la production de contenu original et de qualité.
  • Le Contributeur : En ce qui concerne les rôles utilisateurs, le Contributeur joue un rôle spécifique. Il peut créer et modifier ses propres articles, mais il ne peut pas les publier directement. Ses contributions doivent être examinées et validées par un éditeur ou un administrateur avant d’être publiées sur le site. Le Contributeur est souvent un rédacteur externe qui apporte une contribution précieuse au contenu du site.
  • L’Abonné : Dans l’optique des rôles utilisateurs, l’Abonné est principalement un utilisateur du « front-end ». Son rôle est de lire les articles et de laisser des commentaires. Il n’a pas d’accès aux tâches administratives du site, sauf pour gérer son propre compte. L’Abonné peut bénéficier d’un contenu réservé et d’une expérience personnalisée en s’inscrivant sur le site.

Les différentes capacités des utilisateurs WordPress

Les plugins :

  •  activate_plugin : Cette capacité permet à un utilisateur d’activer/désactiver des plugins sur WordPress. Les utilisateurs avec cette permission peuvent accéder à la page “Extensions” dans le tableau de bord et activer ou désactiver les plugins installés.
  • edit_plugin : Cette compétence concerne la modification des fichiers de code source des plugins. Les utilisateurs qui en ont la permission peuvent donc modifier le code des plugins installés. Attention donc aux pirates.
  • install_plugin : Cette capacité permet l’accès à l’onglet “Extensions” de WordPress afin d’ajouter de nouveaux plugins sur le site.
  • update_plugin : Les utilisateurs ont la possibilité de mettre à jour les plugins.

Les thèmes :

  • upload_themes : L’utilisateur peut télécharger et installer de nouveaux thèmes sur WordPress. Les utilisateurs avec cette permission peuvent accéder à la page “Apparence” dans le tableau de bord et installer des thèmes au format ZIP ou issus de la bibliothèque WordPress.
  • delete_themes : Cette compétence permet de supprimer les thèmes qui ne sont plus nécessaires ou utilisés sur le site.
  • switch_themes : L’utilisateur a la permission de changer de thème et d’en choisir un autre parmi ceux déjà installés.
  • update_themes : Les utilisateurs ont la possibilité de mettre à jour les thèmes, garantissant l’utilisation de la dernière version du thème existant sur le marché.

Les utilisateurs :

  • create_users : L’utilisateur crée de nouveaux utilisateurs et définit leurs rôles.
  • delete_users : Cette compétence permet de supprimer des utilisateurs sur le site WordPress. Cependant, si l’utilisateur est supprimé avec cette capacité, le contenu de cet utilisateur le sera aussi. Contrairement à la compétence “remove_users”.
  • edit_users : L’utilisateur a la permission de modifier les paramètres des utilisateurs enregistrés tels que les noms, les e-mails, les rôles, etc.
  • list_users : L’utilisateur a l’autorisation de consulter une liste des utilisateurs du site.
  • promote_users : Cette capacité permet d’attribuer un rôle supérieur à un utilisateur existant. Par exemple, on peut transformer un rôle « abonné » en « éditeur » si l’on a cette capacité.
  • remove_users : L’utilisateur a la permission de supprimer les comptes utilisateurs tout en conservant le contenu qui a été rédigé sur le site par cet utilisateur.

Gestion de WordPress

  • edit_theme_options : Ce rôle permet de personnaliser l’apparence, la disposition et d’autres paramètres du thème dans le menu “Apparence” de WordPress.
  • manage_categories : L’utilisateur a la permission de créer et de supprimer des catégories dans WordPress.
  • manage_links : L’utilisateur peut ajouter, modifier ou supprimer des liens dans les menus, les widgets ou d’autres emplacements spécifiques de WordPress.

Pages

  • edit_pages : Cette permission permet de modifier toutes les pages existantes dans WordPress. L’utilisateur peut modifier le contenu, les titres, les permaliens, etc.
  • delete_published_pages : Les utilisateurs peuvent supprimer toutes les pages publiées sur le site.
  • delete_private_pages : L’utilisateur peut supprimer les pages marquées comme privées.
  • edit_private_pages : L’utilisateur a la permission de modifier les pages privées existantes dans WordPress.
  • read_private_pages : L’utilisateur peut lire les pages marquées comme “privées”.
  • unfiltered_html : L’utilisateur peut inclure du code HTML dans les contenus sans que WordPress n’interfère. Le filtrage est désactivé, il est donc nécessaire d’être prudent lors de l’attribution de cette capacité à un utilisateur afin d’éviter les risques de sécurité.

Articles

  • edit_posts : Cette permission permet de modifier tous les articles existants dans WordPress. L’utilisateur peut modifier le contenu, les titres, les permaliens, etc.
  • delete_published_posts : Les utilisateurs peuvent supprimer tous les articles publiés sur le site.
  • delete_private_posts : L’utilisateur peut supprimer les articles marqués comme privés.
  • edit_private_posts : L’utilisateur a la permission de modifier les articles privés existants dans WordPress.
  • read_private_posts : L’utilisateur peut lire les articles marqués comme “privés”.

Fichiers

  • upload_files : Cette permission permet à l’utilisateur d’importer des fichiers pour les intégrer à WordPress. Il aura accès au menu « Médias » et à la « Médiathèque » de WordPress.
  • edit_files : Les utilisateurs ayant cette capacité pourront modifier les fichiers sources des thèmes et des plugins présents dans le FTP, sauf si cette fonction a été supprimée dans le thème.

Commentaires

  •  moderate_comments : Cette permission permet à l’utilisateur de supprimer ou approuver des commentaires sur le site.
  • Comment : Les utilisateurs ayant cette capacité pourront commenter les différents articles si les commentaires sont ouverts.

Lecture

read : Cette permission permet à l’utilisateur de lire le contenu du site WordPress.

Tableau récapitulatif des rôles utilisateurs et capacités

CapacitésAdministrateurÉditeur AuteurContributeurAbonné
Plugins
activate_pluginsinclunon-inclunon-inclunon-inclunon-inclu
edit_pluginsinclunon-inclunon-inclunon-inclunon-inclu
install_pluginsinclunon-inclunon-inclunon-inclunon-inclu
update_pluginsinclunon-inclunon-inclunon-inclunon-inclu
Thèmes
upload_themesinclunon-inclunon-inclunon-inclunon-inclu
delete_themesinclunon-inclunon-inclunon-inclunon-inclu
edit_themesinclunon-inclunon-inclunon-inclunon-inclu
switch_themesinclunon-inclunon-inclunon-inclunon-inclu
update_themesinclunon-inclunon-inclunon-inclunon-inclu
Utilisateurs
create_usersinclunon-inclunon-inclunon-inclunon-inclu
delete_usersinclunon-inclunon-inclunon-inclunon-inclu
edit_usersinclunon-inclunon-inclunon-inclunon-inclu
list_usersinclunon-inclunon-inclunon-inclunon-inclu
promote_usersinclunon-inclunon-inclunon-inclunon-inclu
remove_usersinclunon-inclunon-inclunon-inclunon-inclu
Gestion de WordPress
update_coreinclunon-inclunon-inclunon-inclunon-inclu
edit_dashboardinclunon-inclunon-inclunon-inclunon-inclu
exportinclunon-inclunon-inclunon-inclunon-inclu
importinclunon-inclunon-inclunon-inclunon-inclu
edit_theme_optionsinclunon-inclunon-inclunon-inclunon-inclu
manage_categoriesincluinclunon-inclunon-inclunon-inclu
manage_linksincluinclunon-inclunon-inclunon-inclu
Pages
edit_pagesincluinclunon-inclunon-inclunon-inclu
edit_others_pagesincluinclunon-inclunon-inclunon-inclu
edit_published_pagesincluinclunon-inclunon-inclunon-inclu
publish_pagesincluinclunon-inclunon-inclunon-inclu
delete_pagesincluinclunon-inclunon-inclunon-inclu
delete_others_pagesincluinclunon-inclunon-inclunon-inclu
delete_published_pagesincluinclunon-inclunon-inclunon-inclu
delete_private_pagesincluinclunon-inclunon-inclunon-inclu
edit_private_pagesincluinclunon-inclunon-inclunon-inclu
read_private_pagesincluinclunon-inclunon-inclunon-inclu
unfiltered_htmlinclunon-inclunon-inclunon-inclunon-inclu
Articles
edit_others_postsincluinclunon-inclunon-inclunon-inclu
delete_published_postsincluincluinclunon-inclunon-inclu
delete_private_postsincluinclunon-inclunon-inclunon-inclu
edit_private_postsincluinclunon-inclunon-inclunon-inclu
read_private_postsincluinclunon-inclunon-inclunon-inclu
edit_published_postsincluincluinclunon-inclunon-inclu
publish_postsincluincluinclunon-inclunon-inclu
delete_published_postsincluincluinclunon-inclunon-inclu
edit_postsincluincluincluinclunon-inclu
delete_postsincluincluincluinclunon-inclu
unfiltered_htmlinclunon-inclunon-inclunon-inclunon-inclu
Fichiers
upload_filesincluincluinclunon-inclunon-inclu
edit_filesinclunon-inclunon-inclunon-inclunon-inclu
Commentaires
moderate_commentsincluinclunon-inclunon-inclunon-inclu
commentsincluincluincluincluinclu
readincluincluincluincluinclu

Pourquoi la gestion des utilisateurs est-elle importante ?

Contrôler la sécurité de son site web

En attribuant des rôles spécifiques à vos utilisateurs, vous avez un contrôle total sur les actions qui leur sont possibles sur votre site. Ainsi, vous éviterez qu’un utilisateur tiers ait accès à des données sensibles ou à d’autres fonctionnalités qui ne le concernent pas.

Par conséquent, si un utilisateur est enregistré sur votre site et que son rôle est défini en tant qu'”Abonné”, même en cas de piratage de son compte ou si un pirate s’est inscrit sur votre site WordPress, vous réduisez les risques de piratage. En revanche, un utilisateur disposant de tous les droits pourrait causer beaucoup de dégâts.

Gestion des tâches

Vous pouvez attribuer des tâches précises à chaque utilisateur en fonction de son rôle. Par exemple, l’éditeur peut valider les articles publiés par les contributeurs et vérifier les articles rédigés par les auteurs. Ainsi, vous vous déchargez de cette tâche en tant qu’administrateur. Sur WooCommerce, par exemple, un rôle utilisateur permet à un employé de prendre en charge les commandes. L’administrateur n’aura donc pas à assumer cette responsabilité si un membre de son entreprise peut s’en occuper.

Personnaliser l’expérience utilisateur sur le site

Avoir un rôle restreint permet d’avoir une interface d’administration plus légère. Un simple éditeur ou auteur n’aura pas besoin de la plupart des fonctionnalités du site. Ainsi, en lui attribuant le bon rôle en fonction de ses tâches sur votre site internet, il disposera d’une administration adaptée à l’essentiel nécessaire pour les accomplir.

Collecte de données :

En attribuant des rôles, vous pouvez également collecter des statistiques pour voir le taux d’engagement des abonnés sur le site, le taux de participation des rédacteurs, par exemple, et bien d’autres informations.

N’hésitez pas à bien choisir les rôles utilisateurs adaptés pour une gestion efficace de votre site web et une meilleure expérience pour tous les utilisateurs.

Gestion des rôles d’utilisateurs dans WordPress

Sur WordPress, il existe deux façons de modifier les paramètres de base : utiliser un plugin ou ajouter quelques lignes de code dans le fichier functions.php de votre thème ou thème enfant.
Dans de nombreux cas, il est préférable d’intervenir directement dans le code plutôt que d’installer de nombreux plugins qui peuvent ralentir votre site.

Nous verrons les deux cas de figure.

Gestion des utilisateurs sans Plugin

Supprimer les capacités d’un rôle existant et lui en attribuer de nouvelles

Voici le code générique pour modifier un rôle utilisateur dans WordPress

function inumedia_modifier_capacites_role($nom_role, $nouvelles_capacites) {
    $role = get_role($nom_role); // Récupère l'objet du rôle utilisateur
    
    if (!empty($role)) {
        // Supprime toutes les capacités actuelles du rôle
        foreach ($role->capabilities as $capacite => $valeur) {
            $role->remove_cap($capacite);
        }
        
        // Ajoute les nouvelles capacités au rôle
        foreach ($nouvelles_capacites as $capacite) {
            $role->add_cap($capacite);
        }
        
        return true;
    }
    
    return false;
}

Quelques explications :

  • La fonction inumedia_modifier_capacites_role prend deux paramètres : $nom_role est le nom du rôle que vous souhaitez modifier (administrateur, editeur…), et $nouvelles_capacites est un tableau contenant les nouvelles capacités que vous souhaitez attribuer au rôle.
  • On récupère les paramètres d’un rôle avec get_role.
  • On supprime toutes les capacités actuelles du rôle en utilisant la méthode remove_cap.
  • Enfin, on ajoute les nouvelles capacités au rôle en utilisant la méthode add_cap.
  • Si le rôle est trouvé et les capacités sont modifiées avec succès, on retourne true. Sinon, on retourne false.

Ajouter les capacités à un rôle existant

function inumedia_ajouter_capacites_role($nom_role, $capacites_ajoutees) {
    $role = get_role($nom_role); // Récupère l'objet du rôle utilisateur
    
    if (!empty($role)) {
        foreach ($capacites_ajoutees as $capacite) {
            $role->add_cap($capacite);
        }
        
        return true;
    }
    
    return false;
}

Quelques explications :

  • La fonction inumedia_ajouter_capacites_role prend deux paramètres : $nom_role est le nom du rôle que vous souhaitez modifier (administrateur, editeur…), et $capacites_ajoutees est un tableau contenant les nouvelles capacités que vous souhaitez ajouter au rôle.
  • On récupère les paramètres d’un rôle avec get_role.
  • On ajoute les nouvelles capacités au rôle en utilisant la méthode add_cap.
  • Si le rôle est trouvé et les capacités sont modifiées avec succès, on retourne true. Sinon, on retourne false.

Exemple : Ajouter la possibilité aux éditeurs d’installer un plugin.

Je vais me baser sur le tableau, la capacité correspond à « install_plugins ». Mon rôle est le rôle « éditeur ».

function inumedia_ajouter_capacites_role($nom_role, $capacites_ajoutees) {
    $role = get_role($nom_role); // Récupère l'objet du rôle utilisateur
    
    if (!empty($role)) {
        foreach ($capacites_ajoutees as $capacite) {
            $role->add_cap($capacite);
        }
        
        return true;
    }
    
    return false;
}

// Capacité à ajouter
$capacites_ajoutees = array(
    'install_plugins',
);

// Appel de la fonction pour ajouter la capacité au rôle "Editeur"
$resultat = inumedia_ajouter_capacites_role('editor', $capacites_ajoutees);

if ($resultat) {
    echo "La capacité d'installer les plugins a été ajoutée au rôle 'Editeur' avec succès !";
} else {
    echo "Impossible de trouver le rôle 'Editeur'. Veuillez vérifier le nom du rôle.";
}

Création de nouveaux rôles d’utilisateurs personnalisés

function inumedia_ajouter_capacites_role($nom_role, $capacites_ajoutees) {
    $role = get_role($nom_role); // Récupère l'objet du rôle utilisateur
    
    if (!empty($role)) {
        foreach ($capacites_ajoutees as $capacite) {
            $role->add_cap($capacite);
        }
        
        return true;
    }
    
    return false;
}

// Capacité à ajouter
$capacites_ajoutees = array(
    'install_plugins',
);

// Appel de la fonction pour ajouter la capacité au rôle "Editeur"
$resultat = inumedia_ajouter_capacites_role('editor', $capacites_ajoutees);

if ($resultat) {
    echo "La capacité d'installer les plugins a été ajoutée au rôle 'Editeur' avec succès !";
} else {
    echo "Impossible de trouver le rôle 'Editeur'. Veuillez vérifier le nom du rôle.";
}

Restreindre du contenu en fonction du rôle utilisateur

<?php
// Vérifie si l'utilisateur actuel a la capacité requise
if (current_user_can('capacite_requise')) {
    // Contenu accessible uniquement aux utilisateurs ayant la capacité requise
    
} else {
    // Contenu affiché aux utilisateurs qui n'ont pas la capacité requise
    
}
?>

Exemple : Je vais afficher un texte pour les Administrateurs et les Éditeurs. Pour cela, je repère une capacité commune entre les deux, “delete_others_pages“. Cette compétence, sauf modification préalable, n’est pas accessible aux autres rôles.

<?php
// Vérifie si l'utilisateur actuel a la capacité requise
if (current_user_can('delete_others_pages')) {
    echo "Hello !";
    
} else {
    echo "Vous n'avez pas les droits";
    
}
?>

Le message “Hello” sera donc affiché aux éditeurs et aux administrateurs.

On peut par exemple utiliser cette fonctionnalité pour n’afficher que certains menus à des utilisateurs ou par exemples des pages Options dans l’administration.

Gestion des rôles d’utilisateurs avec user rôle editor

User Role Editor est un plugin de gestion des rôles et des capacités d’utilisateur dans WordPress.
Il permet aux administrateurs de définir des rôles personnalisés, de modifier les capacités des rôles existants et de gérer les autorisations des utilisateurs sur le site de manière détaillée .

Ce plugin est un plugin Freemium

FonctionnalitésFreePro
Gestion basique des utilisateursincluinclu
Création denouveaux rôles personnalisésincluinclu
Modification des capacités des rôles existantsincluinclu
Modification des accès pour chauque rôleinclunon-inclu
Copier les rôles existants pour en créer des nouveauxnon-incluinclu
Importer / exporter des rôlesnon-incluinclu
Meilleure interface utilisateurnon-incluinclu
Support techniquenon-incluinclu

Comment ajouter un rôle dans user role editor ?

Une fois installé, vous le trouverez dans « Comptes > User role editor ».
Cliquez sur « Ajouter un rôle»

Ajoputer un role utilisateur avec user role editor dans wordpress
Ajouter un role avec user role editor

Comment modifier les capacités dans user rôle editor ?

Sélectionnez votre rôle puis cochez / décochez les capacités que vous voulez modifier.
Une fois fait, cliquez sur « Mettre à jour »

Attribuer des droits a un nouveau role utilisateur avec user role editor

C’est tout 🙂

En conclusion

Gérez vos utilisateurs est primordial pour le bon fonctionnement et la sécurité de votre site. N’hésitez pas à organiser le système de fonctionnement et vos équipes pour une meilleure utilisation du CMS

Vous souhaitez faire évoluer votre site WordPress ?

Demandez votre devis pour le développement de nouvelles fonctionnalités