如何从wordpress管理员端隐藏页面

时间:2016-01-12 11:21:21

标签: php jquery wordpress

在我的WordPress网站上有几个管理员角色,但我需要在管理面板中隐藏一些选定管理员角色的页面,所以我只是想搜索隐藏WordPress管理部分的一些页面。但是某些角色可能需要显示隐藏页面。

我只是添加一个示例图像来了解它。 根据图像,我想隐藏管理面板中ABC管理员角色的关于联系页面,管理员面板中的XYZ管理员角色应该可以看到它。希望你们能帮忙。

Sample Image

3 个答案:

答案 0 :(得分:1)

对于角色,请尝试此代码 在数组中使用页面ID。

add_action( 'pre_get_posts' ,'exclude_this_page' );
function exclude_this_page( $query ) {

global $pagenow;
global $current_user;
$user_roles = $current_user->roles;

if( $user_roles[0] == 'administrator' ){
    return $query;
}

if($user_roles[0] == 'editor'){
    if( 'edit.php' == $pagenow &&  'page' == get_query_var('post_type')  )
        $query->set( 'post__not_in', array(20,25) );
}
return $query;
}

答案 1 :(得分:0)

将此代码放在function.php文件中

add_action( 'pre_get_posts' ,'exclude_this_page' );
function exclude_this_page( $query ) {
$user_id = get_current_user_id();
      // If XYZ admin id is 23
        if($user_id != 23 )
                return $query;
        global $pagenow;

        if( 'edit.php' == $pagenow && ( get_query_var('post_type') && 'page' == get_query_var('post_type') ) )
                $query->set( 'post__not_in', array(10,14) ); // array page ids(contact us and abous us page ids)
        return $query;
}

答案 2 :(得分:0)

请尝试此代码..仅插入要排除的页面和要排除的管理员ID add_action(' pre_get_posts',' exclude_this_page');

function exclude_this_page( $query ) {
        //current user ID
        $user_id = get_current_user_id();

        //Ids of users to exclude
        $excluded_users = array(1,2,3);

        //Ids of pages to be excluded
        $excluded_pages = array(10,20,30);

        global $pagenow;

        if( 'edit.php' == $pagenow && ( get_query_var('post_type') && 'page' == get_query_var('post_type') ) ){

                if(in_array($user_id,$excluded_users)){
                    $query->set( 'post__not_in', $excluded_pages );
                }
        }
        return $query;

    }