只有特定角色才有权访问CPT

时间:2018-05-29 作者:Amirition

我有一个“理发店”自定义帖子类型,我想在我的wordpress中有一个“理发师”角色。我写这段代码是为了让我的理发师有权写或删除他自己的理发店。

// Barbershop Post Type
function register_barbershop() {
    $labels = array(
        \'name\'                                  =>  __(\'آرایشگاه ها\', \'noosh\'),
        \'singular_name\'                         =>  __(\'آرایشگاه\', \'noosh\'),
        \'add_new\'                               =>  __(\'افزودن\', \'noosh\'),
        \'add_new_item\'                          =>  __(\'افزودن آرایشگاه تازه\', \'noosh\'),
        \'edit_item\'                             =>  __(\'ویرایش آرایشگاه\', \'noosh\'),
        \'new_item\'                              =>  __(\'آرایشگاه تازه\', \'noosh\'),
        \'view_item\'                             =>  __(\'نمایش آرایشگاه\', \'noosh\'),
        \'view_items\'                            =>  __(\'نمایش آرایشگاه ها\', \'noosh\'),
        \'all_items\'                             =>  __(\'همه ی آرایشگاه ها\', \'noosh\'),

    );
    $args = array(
        \'labels\'                                =>  $labels,
        \'public\'                                =>  true,
        \'capability_type\'                       =>  \'bshop\',
        \'map_meta_cap\'                          =>  true,
        \'supports\'                              =>  array(\'title\', \'editor\', \'comments\', \'author\', \'thumbnail\')
    );
    register_post_type(\'barbershop\', $args);
}

add_action( \'init\', \'register_barbershop\' );

// Add barber user role
function add_barber() {
    $caps = [
        \'read\'                    => true,
        \'edit_bshop\'              => true,
        \'read_bshop\'              => true,
        \'delete_bshop\'            => true,

        \'edit_bshops\'             => true,
        \'edit_others_bshops\'      => false,
        \'publish_bshops\'          => true,
        \'read_private_bshops\'     => true,

        \'delete_bshops\'           => true,
        \'delete_private_bshops\'   => true,
        \'delete_published_bshops\' => true,
        \'delete_others_bshops\'    => false,
        \'edit_private_bshops\'     => true,
        \'edit_published_bshops\'   => true,
    ];

    add_role( \'barber\', \'آرایشگر\', $caps );
}

add_action( \'after_setup_theme\', \'add_barber\' );
但有一个问题,只有我的理发师可以访问这个理发店cpt,而不是超级管理员。我希望我的管理员也能管理理发店,我该怎么办?

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

我认为您也应该将这些新功能添加到管理员角色中。

也许这个问题可以帮助你:Apply custom role capabilities to administrator (without plugin)

结束

相关推荐