我正在创建一个项目插件,它需要两个 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,
]);
但我不能让它工作。
有人可以帮我吗?
答案 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',
),