Les rôles et les capacités sont deux aspects importants de WordPress qui vous permettent de contrôler les privilèges des utilisateurs.
WordPress stocke les rôles et leurs capacités dans le tableau options
sous la clé user_roles
.
Rôles #Roles
Un rôle définit un ensemble de capacités pour un utilisateur. Par exemple, ce que l’utilisateur peut voir et faire dans son tableau de bord.
Par défaut, WordPress a six rôles :
- Super Admin
- Administrateur
- Éditeur
- Auteur
- Contributeur
- Abonné
Des rôles supplémentaires peuvent être ajoutés et les rôles par défaut peuvent être supprimés.
Ajouter des rôles #Adding Roles
Ajouter de nouveaux rôles et leur attribuer des capacités avec add_role().
function wporg_simple_role() {add_role('simple_role','Simple Role',array('read' => true,'edit_posts' => true,'upload_files' => true,),);}// Add the simple_role.add_action( 'init', 'wporg_simple_role' );
Expansion du code source completRéduction du code source complet
Après le premier appel à add_role(), le rôle et ses capacités seront stockés dans la base de données !
Les appels séquentiels ne feront rien : y compris modifier la liste des capacités, ce qui n’est peut-être pas le comportement que vous attendez.
Note :
Pour modifier la liste des capacités en vrac : supprimez le rôle en utilisant remove_role() et ajoutez-le à nouveau en utilisant add_role() avec les nouvelles capacités.
Veillez à ne le faire que si les capacités diffèrent de ce que vous attendez (c’est-à-dire conditionner ceci) ou vous dégraderez considérablement les performances !
Top
Removing Roles #Removing Roles
Remove roles with remove_role().
function wporg_simple_role_remove() {remove_role( 'simple_role' );}// Remove the simple_role.add_action( 'init', 'wporg_simple_role_remove' );
Alerte :
Après le premier appel à remove_role(), le rôle et ses capacités seront supprimés de la base de données !
Des appels séquentiels ne feront rien.
Note :
Si vous supprimez les rôles par défaut :
- Nous déconseillons de supprimer les rôles d’administrateur et de super administrateur !
- Veuillez vous assurer de conserver le code dans votre plugin/thème car de futures mises à jour de WordPress pourraient ajouter à nouveau ces rôles.
- L’exécution
update_option('default_role', YOUR_NEW_DEFAULT_ROLE)
puisque vous allez supprimersubscriber
qui est le rôle par défaut de WP.
Top
Capacités #Capacités
Les capacités définissent ce qu’un rôle peut et ne peut pas faire : modifier des articles, publier des articles, etc.
Note :
Les types de posts personnalisés peuvent nécessiter un certain ensemble de Capacités.
Top
Ajout de Capacités #Ajout de Capacités
Vous pouvez définir de nouvelles capacités pour un rôle.
Utiliser get_role() pour obtenir l’objet rôle, puis utiliser la méthode add_cap()
de cet objet pour ajouter une nouvelle capacité.
function wporg_simple_role_caps() {// Gets the simple_role role object.$role = get_role( 'simple_role' );// Add a new capability.$role->add_cap( 'edit_others_posts', true );}// Add simple_role capabilities, priority must be after the initial role definition.add_action( 'init', 'wporg_simple_role_caps', 11 );
Note :
Il est possible d’ajouter des capacités personnalisées à n’importe quel rôle.
Sous l’administration WordPress par défaut, elles n’auraient aucun effet, mais elles peuvent être utilisées pour un écran d’administration personnalisé et des zones frontales.
Top
Removing Capabilities #Removing Capabilities
Vous pouvez supprimer des capacités d’un rôle.
L’implémentation est similaire à l’ajout de capacités, la différence étant l’utilisation de la méthode remove_cap()
pour l’objet rôle.
Haut de page
Utilisation des rôles et des capacités #Utilisation des rôles et des capacités
Haut de page
Get Role #Get Role
Obtenir l’objet rôle incluant toutes ses capacités avec get_role().
get_role( $role );
Top
User Can #User Can
Vérifier si un utilisateur a un rôle ou une capacité spécifiée avec user_can().
user_can( $user, $capability );
Avertissement :
Il existe un troisième argument non documenté, $args, qui peut inclure l’objet par rapport auquel le test doit être effectué.
Par exemple, passer un ID de post pour tester la capacité de ce post spécifique.
Haut
L’utilisateur actuel peut #Current User Can
current_user_can() est une fonction enveloppante pour user_can() utilisant l’objet utilisateur actuel comme $user
paramètre.
Utiliser ceci dans des scénarios où les zones back-end et front-end doivent nécessiter un certain niveau de privilèges pour accéder et/ou modifier.
current_user_can( $capability );
Haut
Exemple #Example
Voici un exemple pratique d’ajout d’un lien Modifier sur le dans un fichier de modèle si l’utilisateur a la capacité appropriée :
if ( current_user_can( 'edit_posts' ) ) {edit_post_link( esc_html__( 'Edit', 'wporg' ), '<p>', '</p>' );}
Top
Multisite #Multisite
La fonction current_user_can_for_blog() est utilisée pour tester si l’utilisateur actuel a un certain rôle ou une certaine capacité sur un blog spécifique.
current_user_can_for_blog( $blog_id, $capability );
Top