在将ADD_ROLE添加到unctions.php并创建用户后,无法登录到admin

时间:2011-09-08 作者:dashaluna

我正在尝试添加一个特定的角色来管理我的自定义帖子类型,但我在一开始就陷入了困境。

我添加了add_role() 功能。php文件如下:

add_role(\'resourcerer\', \'Resourcerer\', array(\'read_internal_jobs\'));
并创建了一个具有该角色的用户。但是,当我尝试使用新用户登录时,会出现一个错误You do not have sufficient permissions to access this page. 我不知道我做错了什么:S

注册自定义帖子类型时,我有以下设置:

\'capability_type\' => array(\'internal_job\', \'internal_jobs\'),
\'map_meta_cap\' => true,
如果我了解register_post_type() Codex 正确,通过指定capability_type 这个capabilities 字符串将分别使用capability_type, 例如:edit\\u internal\\u jobs、publish\\u internal\\u jobs等。

我真的很感激任何帮助!

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

这是因为缺少登录所需的“正常”功能。您只需加载一些默认角色的功能并将其附加到自定义角色,然后再将其用于用户。

<小时>EDIT: dashalune的解决方案(OP):

add_role(\'resourcerer\', \'Resourcerer\'); 
$role =& get_role(\'resourcerer\'); 
$role->add_cap(\'read\');

SO网友:Jos Faber

这是针对特定主题的自定义角色(通过add\\u role)的自定义角色的完整工作示例:

function add_theme_caps() {
    $role = get_role( \'roletypename\' );
    // create if neccesary
    if (!$role) $role = add_role(\'roletypename\', \'Role Name\'); 
    // add theme specific roles
    $role->add_cap(\'delete_posts\');
    $role->add_cap(\'delete_published_posts\');
    $role->add_cap(\'edit_posts\');
    $role->add_cap(\'edit_published_posts\');
    $role->add_cap(\'publish_posts\');
    $role->add_cap(\'read\');
    $role->add_cap(\'upload_files\');
}
add_action( \'admin_init\', \'add_theme_caps\');

结束

相关推荐