更改作者下拉列表中没有作者

时间:2013-01-02 作者:HoGo

我添加了一个自定义帖子类型“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\');
这是一个能力问题吗?可能有什么问题?

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

结束

相关推荐

Show Posts to Author Only

我已经在WordPress中为我的一个网站开发了发票系统。我使用了自定义的帖子类型和自定义的元字段,集成的支付网关来满足我的需要。用户一般生成发票上传资金。我使用了来自前端的post提交,以便用户可以自己创建发票。一切都运行顺利,但用户创建的一张发票对其他用户可见。例如,创建的发票,id:APL-2012110489586。用户B可以通过键入domin访问发票。com?发票=APL-2012110489586。现在我想限制其他用户访问发票。只有管理员和发票创建者才能访问发票。所有用户都是订户角色。需要您的