MAP_META_CAP筛选器有什么用途?

时间:2010-09-12 作者:rsman

这有什么用map_meta_cap 滤器该过滤器未在任何地方记录。我不清楚这可能是什么:

用于将用户的权限映射到帖子上的操作。

这到底是什么意思?如果可能,请给出一些正确用法的示例代码示例。

3 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

此筛选器允许您扩展the map_meta_cap() function. 这个函数is called by WP_User->has_cap() 将元功能转换为一个或多个基本功能。

例如,您想知道是否应允许当前用户编辑当前帖子,the edit_post meta capability. 这取决于一些因素:用户是帖子的作者吗?这篇文章已经发表了吗?该职位是否标记为私人?基本功能包括edit_posts, edit_published_posts, edit_others_postsedit_private_posts: 您可以将这些分配给user roles. map_meta_cap() 检查帖子的作者和状态,并返回正确的基本功能集。此用户必须允许编辑帖子(如果帖子是由其他人撰写并发布的,则会返回array(\'edit_others_posts\', \'edit_published_posts\'), 因此,用户必须同时具备这两种能力才能继续)。

添加这种元功能和基本功能的想法可以让您保持基础WP_User 课堂上没有帖子和帖子状态等知识,只关注能力。实际转换在外部函数中,map_meta_cap().

The filter map_meta_cap 允许您扩展功能,例如在使用自定义帖子时。我相信,如果您设置capabilities 争论register_post_type, 但是Justin TadlockProspress plugin 提供完整的示例。但是,如果您愿意,您可以对其进行定制,以完全翻转功能系统。

SO网友:sorich87

此过滤器可用于映射自定义帖子类型的元功能。本文中有一个很好的代码示例:

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

SO网友:Rarst

这是函数的过滤器map_meta_cap(). 从描述来看,此函数似乎写出了传递到更具体的(如果是post的作者,则为can\\u do\\u this\\u stuff和can\\u do\\u that\\u stuff)中的一般功能(“can\\u do\\u stuff”),并在需要时检查各种条件。

不幸的是,它没有在Codex中记录,我在WP 3.0.1源代码中找不到该函数的一个直接调用。

您是否遇到过使用此函数的情况,或者想将其用于其他用途?我认为,由于它似乎没有被使用,可能有更新和更好的方法来实现此功能。

结束

相关推荐