wordpress自定义用户功能和角色

时间:2017-03-02 20:55:08

标签: wordpress

我是wordpress的新手,我正在尝试创建自定义功能并将其分配给自定义角色,但是,我被卡住了。

这就是我所拥有的但是在调用插件中的函数时我得到“致命错误:调用未定义函数add_cap()”:

function setupCapabilities() {
    //create custom capabilities
    add_cap('view_all_holds');
    add_cap('view_advertiser_lockouts');
    add_cap('view_overages');
    add_cap('view_all_booked');
    add_cap('create_makegood_order');
    add_cap('edit_reports');

    //array for custom admin capabilities
    $adminCaps = array(
        'view_all_holds' => true, 
        'view_advertiser_lockouts' => true, 
        'view_overages' => true, 
        'view_all_booked' => true, 
        'create_makegood_order' => true, 
        'edit_reports' => true
    );

    //create new role with custom capabilities
    add_role('bam_admin', 'BAM Administrator', $adminCaps);

    //get user id
    $userID = get_current_user_id();

    //if the user id is me then add new role
    if ($userID == 46) { //me
        $user = new WP_User($userID);
        $user->add_role('bam_admin');
    }

    //check if the role was successfully applied
    if (in_array('bam_admin', (array) $userID->roles)) {
        echo 'You have succesfully created and checked a role.';
    } else {
        echo 'Something messed up';
    }


}

2 个答案:

答案 0 :(得分:0)

我将发布我的相同代码:

function add_capability()
{
    $role = get_role('players'); //user role

    $rolePerms = array('player_image','player_video'); //post types perms

    foreach($rolePerms as $rolePerm) { 

        $role->add_cap('publish_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('edit_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('delete_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('edit_published_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('delete_published_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('edit_others_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('delete_others_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('read_private_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('edit_private_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('delete_private_'.$rolePerm); // add ,false to remove the perm
        $role->add_cap('manage_categories_'.$rolePerm); // add ,false to remove the perm

    }

}
add_action('admin_init', 'add_capability');

所以我不得不将烫发添加到我的post_type函数

'capability_type'     => 'player_image'´

答案 1 :(得分:0)

您可以将以下插件用于角色&能力。

Click here