描述
如果未在“capabilities”参数数组中设置能力,或者未提供“capability”参数,则文章类型能力将以‘capability_type’参数用作基础能力。
capability_type 参数可以可选地注册为数组,第一个值为单数,第二个值为复数,例如数组('story,'stories')。否则,将在复数形式的值中添加's'。注册后,capability_type 将始终是单数值的字符串。
默认情况下,有八个键被接受为能力数组的一部分:
- edit_post、read_post和delete_post是meta能力,然后通常根据上下文将其映射到相应的基本meta能力,这将是被edited/read/deleted的文章和正在检查的用户或角色。因此,这些能力通常不会直接授予用户或角色。
- edit_posts – 控制是否可以编辑此文章类型的对象。
- edit_others_posts – 控制是否可以编辑其他用户拥有的此类对象。如果post类型不支持作者,则其行为将类似于edit_posts。
- delete_posts – 控制是否可以删除此文章类型的对象。
- publish_posts – 控制此文章类型的发布对象。
- read_private_posts – 控制是否可以读取私有对象。
这五种基本能力在不同位置的核心中检查。除map_meta_cap()之外,还有六种其他基本能力未在核心中直接引用,它将上述三种元能力转换为一种或多种基本能力,然后必须根据上下文对照用户或角色进行检查。
- read – 控制是否可以读取此post类型的对象。
- delete_private_posts – 控制是否可以删除私有对象。
- delete_published_posts – 控制是否可以删除已发布的对象。
- delete_others_posts – 控制是否可以删除其他用户拥有的对象。如果post类型不支持作者,则其行为将类似于delete_posts。
- edit_private_posts – 控制是否可以编辑私有对象。
- edit_published_posts – 控制是否可以编辑已发布的对象。
这些附加能力仅在map_meta_cap()中使用。因此,只有在post类型注册时‘map_meta_cap’参数设置为true(默认值为false)时,才会默认分配它们。
另见
参数
- $args
-
(object)(必填) Post类型注册参数。
返回
(object) 对象,将所有能力作为成员变量。
更多信息
参数$args是所需的能力类型(例如“post”)。将[‘capability_type’]设置为一个数组,以允许在使用此参数作为构建能力的基础时使用其他复数,例如数组(‘story’、‘stories’)。将[‘map_meta_cap’]设置为true也可以获得这些能力。
源码
更新日志
版本 | 描述 |
---|---|
5.4.0 | 'delete_posts'包含在默认能力中。 |
3.0.0 | 开始引入 |
使用示例
get_post_type_capabilities的用法
$args = array( 'capability_type' => 'edit_post' ); // If not set, default to the setting for 'show_ui'. if ( null === $args['show_in_menu'] || ! $args['show_ui'] ) { $args['show_in_menu'] = $args['show_ui']; } $this->cap = get_post_type_capabilities( (object) $args ); unset( $args['capabilities'] );