允许具有作者角色的用户编辑自定义帖子类型

时间:2018-08-18 作者:JoePanpi

我有一个已经编码的项目,它有一个具有特定行为的自定义帖子类型:它只是一个帖子,管理员/编辑/作者只能编辑它的内容。它的内容是一个自定义数据表。管理员和编辑可以很好地进行编辑。我希望作者也能编辑这篇文章,但我似乎无法找到如何编辑。代码如下:

add_action(\'init\', \'register_post_types\');
    function register_post_types(){

    register_post_type(\'post_type_uo\', array(
            \'labels\' => array(
            \'name\'               => \'uo Articles\', 
            \'singular_name\'      => \'uo\', 
            \'add_new\'            => \'Add uo\', 
            \'edit_item\'          => \'Edit Post\', 
            \'view_item\'          => \'View Post\', 
            \'search_items\'       => \'Find Post\', 
            \'not_found\'          => \'Not Found\', 
            \'not_found_in_trash\' => \'Not Found\', 
            \'parent_item_colon\'  => \'\', 
            \'menu_name\'          => \'uo\', 
        ),
    \'public\' => true, 
    \'menu_position\' => 4, 
    \'exclude_from_search\' => true,  
    \'has_archive\' => false,  
    \'rewrite\' => array(\'slug\' => \'daily-uo\'), 
    \'taxonomies\'    => array( \'dailies\' , \'category\'),
    \'menu_icon\'     => \'dashicons-chart-line\', // custom icon
    \'capabilities\' => array(\'create_posts\'  => false,),
    \'map_meta_cap\' => true,
    \'supports\'      => array(\'title\')
    ));
    }
我尝试添加一个功能阵列,然后安装了“成员”插件。

\'capabilities\' => array(
        \'create_posts\' => \'do_not_allow\', // false < WP 4.5, credit @Ewout
        \'read_posts\' => \'read_uos\',
        \'edit_post\' => \'edit_uo\',
        \'edit_posts\' => \'edit_uos\',
        \'published_posts\' => \'publish_uo\',
        \'edit_published_posts\' => \'edit_uo_p\',
        \'edit_others_posts \' => \'edit_uo_others\'
      ),
我可以在插件的角色页面中看到这些功能并选择它们,但对于具有Athor角色的用户仍然没有编辑权限。

最后,我通过插件创建了一个新角色-uo\\u Author-提供正确的(??)权限,但仍然没有运气

有什么想法吗?

1 个回复
最合适的回答,由SO网友:Tedinoz 整理而成

将“dailies”注册为分类法。

“的法典”register post type“表示”即使在创建post类型时注册了分类法,也必须使用register\\u taxonomy()显式注册和定义分类法

PS:如果我能够的话,我会把这个作为对你问题的评论。

UPDATE: 22 August 2018
好的。让我们再次开始讨论。您确实需要添加分类法,但这并不是您的作者无法查看/编辑您的帖子的原因。

在register\\u post\\u type函数中,您的“功能”中存在一些语法错误,足以阻止作者查看uo post。因此,请编辑“功能”以匹配以下内容:

\'capabilities\' => array( \'create_posts\' => \'do_not_allow\', // false < WP 4.5, credit @Ewout \'read_posts\' => \'read_uos\', \'edit_post\' => \'edit_uo\', \'edit_posts\' => \'edit_uos\', \'publish_posts\' => \'publish_uos\', \'edit_published_posts\' => \'edit_published_uos\', \'edit_others_posts\' => \'edit_others_uos\' ),

使用Members插件,为“uo文章”分配所有功能,尽管您可能不想授予各种“删除”和“私有”功能。

您不需要添加其他作者角色。事实上,它的价值可能更令人困惑。

结束

相关推荐

如何通过REST API传递Get_the_Author_Meta(‘User_Email’)?

在我的插件中,如果我在函数中硬编码电子邮件地址wp_mail() 或mail() 我可以使用我的表格:function email_form($ip_address, $agent, $referrer, $email, $name, $message) { $to = \"[email protected]\"; $subject = \"Hard Coded\"; $email_body = \"IP