2017-03-02 63 views
0

我是相當新的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'; 
    } 


} 

回答

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'´ 
0

您可以使用followi ng插件用於角色&功能。

Click here