我是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 :(得分: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)
您可以将以下插件用于角色&能力。