WordPress.org

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

Alerte :
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 supprimer subscriber 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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *