Question

Quelle est l'utilisation du filtre map_meta_cap ? Ce filtre n'est pas documenté nulle part. J'ai une idée claire de ce qu'il pourrait être:

Utilisé pour mapper les autorisations de l'utilisateur à des opérations sur les postes.

Qu'est-ce exactement fait pour? Si possible s'il vous plaît donner quelques exemples de code échantillon de son droit d'utilisation.

Était-ce utile?

La solution

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

Par exemple, vous voulez savoir si l'utilisateur actuel devrait être autorisé à modifier le poste actuel, la capacité meta edit_post . Cela dépend de certains facteurs: l'utilisateur est l'auteur du message? le poste est déjà publié? le poste est marqué comme privé? Les capacités primitives sont edit_posts, edit_published_posts, edit_others_posts et edit_private_posts: vous pouvez les affecter aux . vérifie map_meta_cap() de l'auteur et le statut du poste et retourne le bon jeu de capacités primitives cet utilisateur doit avoir pour permettre la modification du poste (si le message est écrit par quelqu'un d'autre et publié, il retournerait array('edit_others_posts', 'edit_published_posts') , de sorte que l'utilisateur doit avoir les capacités pour continuer).

L'ajout de cette idée de meta capacités et capacités primitives vous permet de garder la base WP_User classe libre de la connaissance des postes et des statuts poste et que ce soit, et se concentrer uniquement sur les capacités . La conversion réelle est dans une fonction externe, map_meta_cap().

Le map_meta_cap filtre vous permet d'étendre la fonctionnalité , par exemple lorsque vous utilisez les messages personnalisés. Je crois que le soutien de base est fourni si vous définissez l'argument capabilities de register_post_type , mais l'article mentionné par Justin Tadlock et Prospress plug-in donner des exemples de ce complet. Mais vous pouvez le personnaliser pour transformer complètement le système de capacités plus, si vous le désirez.

Autres conseils

Ce filtre peut être utilisé pour cartographier les méta capacités pour les types de poste personnalisé. Il y a un bon exemple de code dans cet article:

http://justintadlock.com/archives/2010/07 / 10 / méta-capacités post-pour-types personnalisés

Ceci est fonction de filtre map_meta_cap(). De la description de cette fonction semble écrire capacité générale ( can_do_stuff ) passé dans plus spécifiques (si l'auteur de poste puis can_do_this_stuff et can_do_that_stuff_also ), vérifier divers conditions si nécessaire.

Malheureusement, il n'a pas été documentée dans le Codex et je ne peux pas trouver un seul appel direct de cette fonction dans la source WP 3.0.1.

Aviez-vous rencontré l'utilisation de cette fonction ou si vous voulez l'utiliser pour quelque chose? Je suppose, car il ne semble pas être utilisé, il y a probablement de nouvelles et meilleures façons pour cette fonctionnalité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top