Je deviens très confus au sujet des choses suivantes:
map_meta_cap()
.Il y avait beaucoup de situations où j'ajoute WP des fonctionnalités existantes ou personnalisées à l'un des rôles WP existants ou personnalisés, en espérant que cela fonctionne correctement et que la plupart du temps, cela ne fonctionne pas t.
Je vois que les gens mentionnent le filtre map_meta_cap()
, mais je ne trouve pas de bonne explication sur ce qu’il fait réellement et quand dois-je l’utiliser, et quand les fonctionnalités fonctionneront immédiatement.
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
différence entre les capacités de rôle et méta
Ce serait mieux de demander la comparaison Role
avec Capabilities
, pas seulement Meta capabilities
, mais simplement:
Role
définit un ensemble de tâches qu'un utilisateur auquel le rôle est autorisé à effectuer est autorisé.
Capabilities
sont affectés à Roles
différence entre les capacités méta et primitive?
Méta capacités
edit_post
, read_post
et delete_post
sont dits être Meta Capabilities
car 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 la capacité edit_post
, car quelqu'un vous demandera: il/elle peut éditer quelle publication?
Capacités primitives
Ce sont des fonctionnalités telles que edit_posts
qui ne dépendent d'aucun contexte et qui sont intrinsèques à l'utilisateur. Si quelqu'un a la capacité edit_posts
, il/elle peut éditer des publications.
quand utiliser le filtre map_meta_cap ()?
Lorsque vous enregistrez un nouveau post type avec register_post_type
, vous avez une option à utiliser pour capability_type
qui indique quelles sont les fonctionnalités, similaires à? Là, vous pouvez simplement dire post
, ce qui signifie que vos capacités sont similaires à celles de post
type de publication.
Toutefois, si vous avez besoin de plus de personnalisation, vous pouvez indiquer book
ou array( 'book', 'books' )
(identique), par exemple, pour disposer des fonctionnalités suivantes:
capabilities' => array(
'edit_post' => 'edit_book',
'read_post' => 'read_book',
'delete_post' => 'delete_book',
'edit_posts' => 'edit_books',
'edit_others_posts' => 'edit_others_books',
'publish_posts' => 'publish_books',
'read_private_posts' => 'read_private_books',
'create_posts' => 'edit_books',
)
Lorsque vous utilisez capability_type
en tant que tableau, par exemple: array ('story', 'stories') le premier élément sera utilisé pour les capacités singulières et le second élément pour les capacités plurielles.
La fonction map_meta_cap()
est appelée par WP_User->has_cap()
pour convertir une méta fonctionnalité en une ou plusieurs fonctionnalités primitives.
Il existe également un paramètre map_meta_cap
dans register_post_type
, qui fait la même chose, lors de l’enregistrement post_type.