web-dev-qa-db-fra.com

Limiter le rôle à un plugin

Y a-t-il un moyen de faire cela sans en utilisant un autre plugin et sans modifier le code principal WP:

Je veux donner au plugin personnalisé que je suis en train d'écrire une page de paramètres. Il me faudra donc ajouter des fonctionnalités de plug-in au rôle qui utilise mon plug-in. Cependant, je ne veux pas que ces utilisateurs voient ou puissent modifier les paramètres des autres plugins éventuellement installés. Juste mon plugin.

J'espérais qu'il y avait quelque chose comme $ role_object-> add_cap ('update_settings_myPlugin') , similaire à la façon dont les fonctionnalités peuvent être mappées aux rôles pour des types de publication personnalisés.

1
C C

Homme. Ce n'était pas facile à chasser. Les réponses ci-dessus ne fonctionnent absolument pas à moins que vous n'offriez au rôle de l'utilisateur une très grande capacité "manage_options". J'ai demandé (et répondu) au problème de Trac ici: L'écran d'option personnalisée de l'administrateur n'est pas enregistré, sauf si la capacité de l'utilisateur manage_options

Tous ceux qui, à l'avenir, pourraient rechercher/lire ceci - l'astuce consiste à tirer parti de cette nouvelle capacité de filtrage pour enregistrer votre capacité requise pour l'activité "de gestion des options" plus étroite pour votre plugin ou thème spécifique.

1
C C

Si je vous comprends bien, ce que vous envisagez de faire devrait fonctionner. add_menu_page() ou les fonctions de sous-menu et de page de paramétrage associées, accepte un argument pour la capacité requise. Par exemple:

add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

Le troisième paramètre est "La capacité requise pour que ce menu soit affiché à l'utilisateur." Définissez-le sur une capacité de votre propre invention, puis ajoutez cette capacité à votre utilisateur :

$user = new WP_User( $user_id );
$user->add_cap( 'can_edit_posts' );

Ou à un rôle :

// get the the role object
$role_object = get_role( $role_name );

// add $cap capability to this role object
$role_object->add_cap( $capability_name );
0
s_ha_dum