Je suis très confus au sujet des choses suivantes:
- différence entre les capacités Rôle et Méta,
- différence entre les capacités Meta et Primitive,
- quand utiliser le
map_meta_cap()
filtre.
Dans de nombreuses situations, j'ajoute des fonctionnalités WP existantes ou personnalisées à des rôles WP existants ou personnalisés, en m'attendant à ce que cela fonctionne immédiatement et la plupart du temps, ce n'est pas le cas.
Je vois que les gens parlent du map_meta_cap()
filtre, mais je ne peux pas trouver une bonne explication de ce qu'il fait réellement et quand dois-je l'utiliser et quand les capacités fonctionneront hors de la boîte.
J'espère que cela à du sens.
J'apprécierais énormément les explications ou les liens vers des ressources qui expliquent bien cela.
Merci, Dasha
capabilities
user-roles
dashaluna
la source
la source
Réponses:
Ce serait mieux de demander la comparaison
Role
avecCapabilities
, non seulementMeta capabilities
, mais comme une réponse simple:A
Role
définit un ensemble de tâches qu'un utilisateur affecté au rôle est autorisé à effectuer.Capabilities
sont affectés àRoles
Capacités méta
edit_post
,,read_post
etdelete_post
sont censés l'êtreMeta Capabilities
parce qu'ils dépendent du contexte, par exemple le message en cours de modification / lecture / suppression. Cela n'a aucun sens si vous dites qu'un utilisateur a desedit_post
capacités, car quelqu'un vous demandera: il / elle peut modifier quel message?Capacités primitives
Ce sont des capacités comme celles
edit_posts
qui ne dépendent d'aucun contexte et sont intrinsèques à l'utilisateur. Si quelqu'un a desedit_posts
capacités, il / elle peut éditer des articles.Lorsque vous enregistrez un nouveau type de publication à l' aide de
register_post_type
, vous avez une option à utiliser pourcapability_type
laquelle dit, quelles sont les capacités, similaires à? Là, vous pouvez simplement direpost
, ce qui signifie que vos capacités sont similaires à celles dupost
type de message.Bu si vous avez besoin de plus de personnalisation, vous pouvez dire
book
ouarray( 'book', 'books' )
(la même chose), par exemple, pour avoir les capacités suivantes:Lors de l'utilisation en
capability_type
tant que tableau, par exemple tableau («histoire», «histoires»), le premier élément sera utilisé pour les capacités singulières et le second élément de tableau pour les capacités plurielles.La
map_meta_cap()
fonction est appelée parWP_User->has_cap()
pour convertir une méta-capacité en une ou plusieurs capacités primitives.Il existe également un
map_meta_cap
paramètre dansregister_post_type
, qui fait la même chose, lors de l'enregistrement post_type.la source
...If somebody has edit_posts capabality, she/he can edit posts...
mais qui / dont les postes?