Je souhaite créer une fonctionnalité personnalisée pour accéder à l'interface de mon plugin.
- Le plugin doit-il gérer l'ajout de cette fonctionnalité à tous les comptes d'administrateur lors de l'activation?
- Si oui: WordPress gère-t-il l'ajout de la capacité à tous les administrateurs de sous-blogs et super administrateurs dans les installations multisites, ou cette fonction doit-elle être gérée par le plugin?
Réponses:
Supprimez ce que vous ajoutez
Tout d'abord, assurez-vous que tout ce que vous ajoutez lors de l'activation est également supprimé lors de la désinstallation . J'ai reçu un petit tutoriel comprenant un exemple de code pour vous.
Testez avec un petit plugin:
Je ne sais vraiment pas grand-chose sur MU, mais pour autant que je sache, l'objet rôles est global sur tous les blogs. Essayez simplement ce petit plugin et voyez ce que vous pouvez obtenir:
Ajout de capacités
Remarque: Vous pouvez ajouter la capacité au rôle sans lui accorder l'accès - définissez simplement le deuxième argument
$grant = false;
. Cela permet aux utilisateurs individuels de mettre sur liste blanche en ajoutant simplement le plafond, y compris le dernier argument comme vrai.la source
Pour un plugin sur lequel je travaille actuellement, je voulais accorder / restreindre l'accès aux paramètres du plugin (c'est-à-dire aux pages du menu d'administration correspondant) sur une base par rôle .
Par conséquent, j'ai dû ajouter un nouveau plugin spécifique
capability
auuser roles
.Malheureusement, la réponse de Kaiser ne semble plus fonctionner, j'ai donc passé un peu de temps à essayer de comprendre comment autoriser les fonctionnalités mentionnées ci-dessus.
L'horaire
Avant de partager mon code avec vous, voici de quoi il s'agit, en texte clair:
THE_NEW_CAP
aux rôles ayant une certaine capacité intégréeBUILT_IN_CAP
(dans mon cas:)edit_pages
.Le code
Et voici la liste ci-dessus convertie en code:
»Configuration
" En l'utilisant
»Le nettoyer
Remarque: veuillez ne pas utiliser les capacités en majuscules. C'est juste pour la lisibilité.
la source
get_editable_roles()
pour récupérer les rôles que vous souhaitez modifier. Vous allez casser les plugins autrement.Cela fonctionne pour moi:
la source