管理员:获取自定义角色的所有用户

时间:2014-10-13 作者:Gregoire

我用这些功能制作了一个自定义的post-type evement。在这里,我只是把能力参数。

\'capability_type\' => \'evenement\',
\'map_meta_cap\' => true,
\'capabilities\' => array(
    // meta caps (don\'t assign these to roles)
    \'edit_post\' => \'edit_evenement\',
    \'read_post\' => \'read_evenement\',
    \'delete_post\' => \'delete_evenement\',

    // primitive/meta caps
    \'create_posts\' => \'create_evenements\',

    // primitive caps used outside of map_meta_cap()
    \'edit_posts\'  => \'edit_evenements\',
    \'edit_others_posts\'  => \'manage_evenements\',
    \'publish_posts\' => \'publish_evenements\',
    \'read_private_posts\' => \'read\',

    // primitive caps used inside of map_meta_cap()
    \'read\' => \'read\',
    \'delete_posts\' => \'delete_evenements\',
    \'delete_private_posts\' => \'delete_private_evenements\',
    \'delete_published_posts\' => \'delete_published_evenements\',
    \'delete_others_posts\' => \'manage_evenements\',
    \'edit_private_posts\' => \'edit_evenements\',
    \'edit_published_posts\' => \'edit_evenements\'
    )
对于我使用的add\\u cap函数

// CPT event
function manage_event_capabilities() {
    $admin = get_role(\'administrator\');
    $institution = get_role(\'institution\');
    $institutionspecial = new WP_User(105);
    $caps = array(
        \'create_evenements\',
        \'delete_evenements\',
        \'delete_private_evenements\',
        \'delete_published_evenements\',
        \'edit_evenements\',
        \'manage_evenements\',
        \'publish_evenements\'
    );

    foreach($caps as $cap) {
        $admin->add_cap($cap);
    }

    // $admin->remove_cap(\'exec_php\');

    // basique
    $institution->add_cap(\'upload_files\');

    // event
    $institution->add_cap(\'create_evenements\');
    $institution->add_cap(\'edit_evenements\');
    $institution->remove_cap(\'publish_evenements\');
    $institution->add_cap(\'delete_evenements\');
    $institution->add_cap(\'special_institution\');


}
一切都很完美,除了一个想法。管理员无法列出具有此自定义角色的所有用户institution. 如果我想更改作者,我只需要当前作者(具有机构角色)或所有normal 网站作者。

你能帮帮我吗?谢谢

1 个回复
SO网友:Gregoire

我找到了解决方案,这是WordPress 4年的bug。以下是DrewAPicture

已从手动创建的用户角色未显示在“作者”下拉列表中(不考虑已分配的功能)更改为手动创建的用户角色未显示在“作者”下拉列表中(不考虑已分配的功能)

请参见ticket 16841 了解更多详细信息。

我找到的唯一简单的解决方案是将具有自定义角色的作者更改为普通作者角色。然后,将自定义帖子归于此作者,并使用自定义角色更改回同一作者。

结束

相关推荐

PHP致命错误:无法为wp-includes/capabilities.php中的非对象调用重载函数

我在apache日志中遇到了太多以下错误。PHP Fatal error: Cannot call overloaded function for non-object in wp-includes/capabilities.php on line 1187这是函数current\\u user\\u can($capability)的内部,第1187行如下所示:$current_user = wp_get_current_user(); 我不知道问题出在哪里?