当前浏览:首页 / WordPress函数 / get_post_type_capabilities()

get_post_type_capabilities( object $args )

使用文章类型对象生成具有所有文章类型能力的对象

post_type 文章类型more...


描述

如果未在“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开始引入

使用示例

  • 示例1

    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'] );