我添加了一个自定义帖子类型“Review”,以及一个自定义角色“Reviewer”。问题是当我以管理员身份登录时,我会查看当前作者是管理员,我想将作者更改为审阅者。除了管理员之外,我在下拉列表中没有其他选项。当我更改一篇作者是评论者的文章时,我在下拉列表中有两个选项:当前作者和管理员。其他审阅者不可见。
这是一个具有功能的部件
\'capabilities\' => array(
\'edit_post\' => \'edit_review\',
\'edit_others_posts\' => \'edit_others_reviews\',
\'publish_posts\' => \'publish_reviews\',
\'read_post\' => \'read_swpd_review\',
\'read_private_posts\' => \'read_private_reviews\',
\'delete_post\' => \'delete_swpd_review\'
),
以及设置新角色
/* Add guest author role to the blog */
add_role(\'reviewer\', \'Reviewer\', array(\'edit_review\',\'read_review\',\'delete_review\'));
//add capabilities for admin
$role_object = get_role( \'administrator\' );
$role_object->add_cap( \'read_review\' );
$role_object->add_cap( \'edit_review\' );
$role_object->add_cap( \'delete_review\' );
$role_object->add_cap( \'publish_reviews\' );
$role_object->add_cap( \'edit_others_reviews\' );
//set level for reviewer (should fix a dropdown bug)
$role_object = get_role( \'reviewer\' );
$role_object->add_cap(\'level_1\');
这是一个能力问题吗?可能有什么问题?
SO网友:Rob Vermeer
角色“审阅者”只有特殊功能,没有其他功能。要进入作者列表,你必须至少是一个贡献者或作者。
function rb_addroles() {
$role = get_role(\'contributor\');
remove_role( \'reviewer\' );
add_role( \'reviewer\', \'Reviewer\', $role->capabilities );
$reviewer = get_role(\'reviewer\');
$reviewer->add_cap( \'edit_review\' );
$reviewer->add_cap( \'read_review\' );
$reviewer->add_cap( \'delete_review\' );
}
add_action( \'admin_init\', \'rb_addroles\' );
使用此功能,审阅者具有参与者功能以及您的特殊审阅者功能。您可以更改author中的contributor,以便在后端为其提供可编辑权限。
顺便说一句,你只需要运行一次脚本,最好是在插件或函数中运行。登录管理帐户的php。
您可以通过以下方式检查角色:
$reviewer = get_role(\'reviewer\');
print_r($reviewer);