自定义用户角色:可以编辑自己的页面,不能新建

时间:2017-05-09 作者:dcolumbus

我只是在这里兜圈子,想弄明白这一点,但我有一个自定义用户角色Dealer 他应该只能编辑他自己的页面。但我不希望此用户能够创建任何新页面。

我目前正在使用成员插件来管理角色。

我还想确保删除此用户角色的“添加新”菜单项。我尝试了以下方法,但没有成功:

function cm_redirect_users_by_role() {

    if ( ! defined( \'DOING_AJAX\' ) ) {

        $current_user   = wp_get_current_user();
        $role_name      = $current_user->roles[0];

        if ( \'dealer\' === $role_name ) {
            remove_menu_page(\'post-new.php?post_type=page\');
            // wp_redirect( \'http://www.mywebsite.com/\' );
        } // if

    } // if DOING_AJAX

} // cm_redirect_users_by_role
add_action( \'admin_init\', \'cm_redirect_users_by_role\' );

1 个回复
SO网友:Ray

我不确定您是否使用了最正确的限制方式,因此可能其他人可以插话,但此if语句正在获取阵列中的第一个角色,可能是经销商,也可能是其他角色if ( \'dealer\' === $role_name ) {

改为尝试if ($current_user->has_cap (\'dealer\')) { 这个has_cap WP用户的功能将检查用户的功能和角色https://codex.wordpress.org/Class_Reference/WP_User

或此函数https://codex.wordpress.org/Function_Reference/current_user_can

if (current_user_can(\'dealer\'))
还要确保“经销商”与“经销商”的大写字母正确

结束

相关推荐

如何写入wp-USERS表

我正在尝试修改一个登录插件,让新用户在注册时输入要在网站上显示的显示名称。我知道显示名称位于数据库的wp users表中,但无法对其进行写入。Edit<?php function wps_pro_login_registration_errors( $errors ) { if ( empty( $_POST[\'first_name\'] ) ) $errors->add( \'empty_first_name\', \'<st