web-dev-qa-db-fra.com

Quelle est l'utilisation du filtre map_meta_cap?

Quelle est l'utilisation de map_meta_cap filter? Ce filtre n'est documenté nulle part. J'ai une idée incertaine de ce que cela pourrait être:

Utilisé pour mapper les autorisations de l'utilisateur aux opérations sur les publications.

À quoi sert-il exactement? Si possible, donnez un exemple de code illustrant son utilisation correcte.

19
rsman

Ce filtre vous permet d’étendre la fonction map_meta_cap() . Cette fonction est appelée par WP_User->has_cap() pour convertir un méta fonctionnalité en un ou plusieurs capacités primitives.

Par exemple, vous voulez savoir si l'utilisateur actuel doit être autorisé à modifier la publication actuelle, la méta capacité edit_post . Cela dépend de certains facteurs: l'utilisateur est-il l'auteur du message? Le message est-il déjà publié? Le message est-il marqué comme privé? Les capacités primitives sont edit_posts, edit_published_posts, edit_others_posts et edit_private_posts: vous pouvez les affecter à rôles d'utilisateur . map_meta_cap() vérifie l'auteur et le statut de la publication et renvoie l'ensemble correct de capacités primitives cet utilisateur doit pouvoir autoriser la modification de la publication (si la publication est écrite par une autre personne et publiée, elle renverra array('edit_others_posts', 'edit_published_posts'), l’utilisateur doit donc avoir les deux capacités pour continuer).

Ajouter cette idée de méta possibilités et capacités primitives vous permet de garder la classe WP_User de base exempte de connaissances sur les publications et leur statut, et de vous concentrer uniquement sur les fonctionnalités. La conversion réelle est dans une fonction externe, map_meta_cap().

Le filtre map_meta_cap vous permet d'étendre la fonctionnalité, par exemple lorsque vous utilisez des publications personnalisées. Je crois qu'un support de base est fourni si vous définissez l'argument capabilities de register_post_type , mais l'article mentionné de Justin Tadlock et Prospress plugin fournit des exemples complets. Mais vous pouvez le personnaliser pour complètement renverser le système de capacités, si vous le souhaitez.

24
Jan Fabry

Ce filtre peut être utilisé pour mapper des méta-fonctionnalités pour des types de publication personnalisés. Il existe un bon exemple de code dans cet article:

http://justintadlock.com/archives/2010/07/10/meta-capabilities-for-custom-post-types

6
sorich87

Ceci est le filtre de la fonction map_meta_cap(). De la description, cette fonction semble écrire la capacité générale ( can_do_stuff ) passée en plus spécifique (si l'auteur de l'article est alors can_do_this_stuff et can_do_that_stuff_also ), en vérifiant diverses conditions si nécessaire. .

Malheureusement, cela n’est pas documenté dans le Codex et je ne trouve pas un seul appel direct de cette fonction dans le source WP 3.0.1.

Aviez-vous rencontré l'utilisation de cette fonction ou souhaitez-vous l'utiliser pour quelque chose? Je suppose que, vu que cela ne semble pas être utilisé, il existe probablement des moyens plus récents et plus performants pour cette fonctionnalité.

2
Rarst