web-dev-qa-db-fra.com

Dois-je ajouter manuellement 'cap' au rôle d'administrateur?

J'ai créé un rôle:

$role = add_role( 'role', 'role', array('read' => true) );

et ainsi créé une casquette:

$role->add_cap( 'cap' );

après cela, j'avais créé un sous-menu dans le menu administrateur avec 'cap' comme argument de capacité. Le problème est donc que l'utilisateur avec le rôle 'rôle' peut voir le sous-menu mais que l'administrateur du site ne peut pas voir le sous-menu. La question est donc: je dois ajouter 'cap' au rôle admin? n'est-ce pas automatiquement?

2
Victor Aurélio

Une nouvelle fonctionnalité doit être explicitement ajoutée à un rôle ou à un utilisateur. Dans votre cas, si vous souhaitez que tous les administrateurs disposent de la fonctionnalité 'cap', vous l'ajouterez au rôle 'administrateur':

$role = get_role( 'administrator' );
$role->add_cap( 'cap' );

Si vous voulez qu'un administrateur spécifique ait une capacité 'cap', ajoutez-le à cet utilisateur particulier:

$user = new WP_User( $user_id ); // $user_id = id of your administrator user
$user->add_cap( 'cap' );
5