什么用 map_meta_cap 筛选?该过滤器在任何地方都没有记录在任何地方。我对可能是什么不清楚:

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

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

有帮助吗?

解决方案

该过滤器使您可以扩展 map_meta_cap() 功能. 。此功能 被称为 WP_User->has_cap() 转换 元能力 到一个或多个 原始功能.

例如,您想知道是否应允许当前用户编辑当前帖子, edit_post 元能力. 。这取决于某些因素:用户是帖子的作者吗?帖子已经发布了吗?该帖子标记为私人吗?原始功能是 edit_posts, edit_published_posts, edit_others_postsedit_private_posts: :您可以将它们分配给 用户角色. map_meta_cap() 检查作者和帖子状态,并返回正确的集合 原始功能 该用户必须允许帖子编辑(如果帖子是由其他人撰写并已发布的,它将返回 array('edit_others_posts', 'edit_published_posts'), ,因此用户必须具有既有能力继续)。

添加这个想法 元功能原始功能 允许您保持基础 WP_User 班级没有帖子和帖子状态以及其他内容的知识,而只关注功能。实际转换在外部功能中, map_meta_cap().

过滤器 map_meta_cap 允许您扩展功能,例如使用自定义帖子。我相信如果您设置 capabilities 争论 register_post_type, ,但是提到的文章 贾斯汀·塔德洛克ProSpress插件 提供完整的例子。但是,如果您需要,您可以自定义它以完全将功能系统转换。

其他提示

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

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

这是函数的过滤器 map_meta_cap(). 。从描述中,此功能似乎写出了一般能力(can_do_stuff)传递到更具体的(如果Post的作者那样) can_do_this_stuffcan_do_that_stuff_also),根据需要检查各种条件。

不幸的是,它没有在Codex中记录,我找不到WP 3.0.1源中此功能的单个直接调用。

您是否遇到了此功能的用法或想将其用于某些东西?我认为,由于它似乎没有使用,因此可能有更新,更好的方法来实现此功能。

许可以下: CC-BY-SA归因
scroll top