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.
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.
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' );
// get the the role object
$role_object = get_role( $role_name );
// add $cap capability to this role object
$role_object->add_cap( $capability_name );