0

我正在创建一个需要两个 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,
]);

但我不能让它工作。

有人可以帮我吗?

4

1 回答 1

0

注册自定义帖子类型时,您需要以更精细的方式定义功能,请参阅文档以获取更多信息。

'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', 
),
于 2021-03-11T21:48:20.613 回答