Wordpress 自定义帖子类型和自定义用户角色

时间:2021-03-11 20:16:34

标签: wordpress wordpress-plugin-creation wordpress-admin wordpress-capabilities wordpress-roles

我正在创建一个项目插件,它需要两个 CPT 和一个自定义角色来仅管理这两个 CPT。创建 CPT 是简单的部分,但我坚持创建自定义用户角色一周。

我的 CPT 由以下人员声明:

register_post_type("cpt1", [
    'label' => "CPT 1",
    ...
    'capability_type' => "cpt",
]);
register_post_type("cpt2", [
    'label' => "CPT 2",
    ...
    'capability_type' => "cpt",
]);

我以这种方式声明自定义用户角色:

remove_role("cpt_manager");
add_role("cpt_manager", "CPT Manager", [
    'read' => true,
    'cpt' => true,
]);

但它不起作用......我也尝试以这种方式声明用户角色:

remove_role("cpt_manager");
add_role("cpt_manager", "CPT Manager", [
    'read' => true,
    'cpt' => true,
    'read_cpt1' => true,
    'edit_cpt1' => true,
    'publish_cpt1' => true,
    'delete_cpt1' => true,
    'read_cpt2' => true,
    'edit_cpt2' => true,
    'publish_cpt2' => true,
    'delete_cpt2' => true,
]);

但我不能让它工作。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

在注册自定义帖子类型时,您需要以更细化的方式定义功能,see documentation 了解更多信息。

'capabilities' => array(
  'edit_post'          => 'edit_cpt', 
  'read_post'          => 'read_cpt', 
  'delete_post'        => 'delete_cpt', 
  'edit_posts'         => 'edit_cpts', 
  'edit_others_posts'  => 'edit_others_cpts', 
  'publish_posts'      => 'publish_cpts',       
  'read_private_posts' => 'read_private_cpts', 
  'create_posts'       => 'edit_cpts', 
),