Attribuer une à une des dizaines de permissions à chaque nouvel utilisateur serait ingérable ; WordPress regroupe donc ces permissions en profils types, réutilisables et modifiables collectivement.
Fonctionnement dans WordPress
Les rôles sont gérés par la classe WP_Roles et stockés dans l’option wp_user_roles. Cinq rôles existent par défaut — Administrateur, Éditeur, Auteur, Contributeur, Abonné — mais une extension peut en créer d’autres avec add_role(), en leur associant librement un tableau de capacités. Un utilisateur peut, plus rarement, cumuler plusieurs rôles simultanément.
Exemple
add_role( 'redacteur_externe', 'Rédacteur externe', array(
'read' => true,
'edit_posts' => true,
'upload_files' => true,
) );
Pièges fréquents
Créer un rôle personnalisé à l’activation d’un plugin sans le supprimer à la désactivation laisse des rôles orphelins en base de données ; à l’inverse, modifier directement les capacités d’un rôle natif comme Éditeur peut casser des comportements attendus par d’autres extensions qui s’y fient.
Bon à savoir
Restaurer les rôles par défaut après une modification malencontreuse peut se faire en réinstanciant l’option wp_user_roles via une commande WP-CLI dédiée ou une extension de récupération, plutôt qu’en réinstallant WordPress dans son ensemble.
Le rôle attribué à un utilisateur peut différer d’un site à l’autre en Multisite, puisqu’il est stocké dans les métadonnées propres à chaque site plutôt que dans une information globale unique rattachée au compte utilisateur lui-même.