Answers:
这个过滤器允许你扩展的map_meta_cap()
功能。调用WP_User->has_cap()
此功能可将元功能转换为一个或多个原始功能。
例如,你想知道当前用户是否应该被允许编辑当前后,将edit_post
荟萃能力。这取决于一些因素:用户是帖子的作者吗?该帖子已经发布吗?该帖子是否标记为私人?在原始的功能是edit_posts
,edit_published_posts
,edit_others_posts
和edit_private_posts
:你可以将这些给用户角色。map_meta_cap()
检查帖子的作者和状态,并返回该用户必须允许编辑帖子的一组正确的原始功能(如果帖子是由其他人撰写并发布的,它将返回array('edit_others_posts', 'edit_published_posts')
,因此用户必须同时具有以下两项功能:继续)。
通过添加元功能和原始功能的概念,您可以使基WP_User
类免于发布和发布状态等方面的知识,而只关注功能。实际的转换在一个外部函数中map_meta_cap()
。
该过滤map_meta_cap
器使您可以扩展功能,例如在使用自定义帖子时。我相信,如果您设置的capabilities
参数,将提供基本的支持register_post_type
,但是Justin Tadlock和Prospress插件提到的文章提供了完整的示例。但是,您可以根据需要对其进行自定义,以完全翻转功能系统。
此过滤器可用于映射自定义帖子类型的元功能。本文有一个不错的代码示例:
http://justintadlock.com/archives/2010/07/10/meta-capabilities-for-custom-post-types
这是功能过滤器map_meta_cap()
。从描述上看,该函数似乎写出了传递给更具体的常规功能(can_do_stuff)(如果是帖子的作者,则为can_do_this_stuff和can_do_that_stuff_also),并在需要时检查各种条件。
不幸的是,它没有在Codex中记录,并且在WP 3.0.1源代码中找不到该函数的单个直接调用。
您是否曾经使用过此功能或想将其用于某些用途?我认为,由于似乎没有使用它,因此可能有更新更好的方法可以使用此功能。