在我的WordPress网站上有几个管理员角色,但我需要在管理面板中隐藏一些选定管理员角色的页面,所以我只是想搜索隐藏WordPress管理部分的一些页面。但是某些角色可能需要显示隐藏页面。
我只是添加一个示例图像来了解它。 根据图像,我想隐藏管理面板中ABC管理员角色的关于和联系页面,管理员面板中的XYZ管理员角色应该可以看到它。希望你们能帮忙。
答案 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;
}