
Dans le monde merveilleux de WordPress, les rôles utilisateurs permettent de gérer qui peut faire quoi sur un site. C’est super pratique… jusqu’à ce que tu te retrouves avec des rôles que tu n’utilises jamais, voire qui posent plus de problèmes qu’ils n’en résolvent.
Aujourd’hui, je te montre comment supprimer proprement les rôles par défaut comme subscriber
, contributor
et author
pour simplifier la gestion des utilisateurs, éviter les erreurs de manip' et renforcer un peu la sécurité de ton site ou de celui de ton client.
Pourquoi supprimer certains rôles WordPress par défaut ?
WordPress crée plusieurs rôles automatiquement : abonné (subscriber
), contributeur (contributor
), auteur (author
), éditeur (editor
), administrateur (administrator
), etc.
Dans la majorité des projets personnalisés (vitrine, e-commerce, intranet…), on ne se sert que de 1 à 3 rôles. Supprimer les rôles inutiles permet :
- ✅ Moins de confusion pour les clients ou les utilisateurs
- ✅ Moins de risques de mauvaise attribution
- ✅ Moins d’accès inutiles à l’admin
- ✅ Une gestion utilisateur plus simple
Le code pour supprimer les rôles inutiles dans WordPress
Ajoute ce snippet dans le fichier functions.php
de ton thème (ou dans un plugin dédié) :
/* Supprime les rôles inutilisés : subscriber, contributor et author*/
function remove_built_in_roles() {
$roles_to_remove = array( 'subscriber', 'contributor', 'author' );
foreach ( $roles_to_remove as $role ) {
if ( get_role( $role ) ) {
remove_role( $role );
}
}
}
add_action('init', 'remove_built_in_roles');
📌 Ce que fait ce bout de code :
- Il vérifie si les rôles existent.
- Et les supprime proprement au chargement de WordPress (
init
).
✨ Résultat :
→ Fini les rôles inutiles dans l’admin. Tu ne verras plus ces choix dans la liste des rôles utilisateur.
Bonus : empêcher leur assignation par erreur
Même si les rôles sont supprimés, un plugin ou un bout de code tiers pourrait tenter de les réutiliser. Pour te protéger à 100 %, tu peux aussi filtrer les rôles assignables :
function custom_filter_editable_roles($roles) {
unset($roles['subscriber']);
unset($roles['contributor']);
unset($roles['author']);
return $roles;
}
add_filter('editable_roles', 'custom_filter_editable_roles');
Ce filtre bloque l’apparition de ces rôles dans le menu de sélection des rôles (notamment via l’interface admin).
Et maintenant ?
Tu peux aller plus loin en créant des rôles personnalisés, en configurant finement les capacités utilisateur ou en utilisant un plugin comme Members de MemberPress pour une interface visuelle.
Ça a marché pour toi ? Partage tes astuces et remarques en commentaire ! 🚀
Besoin d'un expert pour améliorer les performances de votre site internet ?
Contactez-moi pour en discuter ensemble !
Recevez un audit et une estimation gratuite des optimisations à apporter à votre site web.
Laisser un commentaire