web-dev-qa-db-fra.com

Comment obtenir toutes les fonctionnalités d'un rôle d'utilisateur existant

Comment puis-je obtenir TOUTES les fonctionnalités d'un rôle d'utilisateur existant (par exemple, Auteur)? Je vais l'utiliser pour dupliquer rapidement un rôle d'utilisateur existant, puis créer un nouveau rôle, puis attribuer ou supprimer des fonctionnalités à un nouveau rôle personnalisé.

3
Carl Alberto

Je suggère de ne pas jouer avec les rôles et les fonctionnalités existants dans leur configuration par défaut, cela pourrait vous aider quelques problèmes lorsque vous aurez un ensemble de rôles et de fonctionnalités personnalisés à l'avenir.} _

Pour répondre à votre question, je vais vous donner un exemple: j'ai besoin d'un nouveau groupe de rôles/d'utilisateurs ayant presque un administrateur mais ne pouvant pas éditer les plugins et le thème, pour ce faire:

1) Supposons que vous souhaitiez copier les fonctionnalités existantes de Administrator , procédez comme suit:

 $admin_role_set = get_role( 'administrator' )->capabilities;

2) Vous pouvez créer un nouveau rôle d’utilisateur à l’aide de add_role , voir Codex pour plus de détails. Nous pouvons ensuite utiliser la liste des fonctionnalités que nous avons du n ° 1 en utilisant:

 $role = 'content_admin';
 $display_name = 'Content Admin';
 add_role( $role, $display_name, $admin_role_set );

3) En vérifiant le Roles and Capabilities list du codex: https://codex.wordpress.org/Roles_and_Capabilities nous aurons besoin de supprimer edit_plugins & edit_themes , on peut y arriver en utilisant remove_cap () :

 remove_cap( 'editor', 'edit_plugins' );
 remove_cap( 'editor', 'edit_themes' );

J'espère que cela t'aides!

5
Mac organo