如何为 wp 中的某些用户隐藏特定页面(来自 wp-admin)?
How to hide specific page (from wp-admin) for certain users in wp?
我的形象
我只是想为某些用户隐藏特定页面。
function remove_menus(){
// get current login user's role
$roles = wp_get_current_user()->roles;
// test role
if( in_array('administrator',$roles)){
remove_menu_page( 'edit-comments.php' ); //Posts
remove_menu_page( 'tools.php' );
remove_menu_page('edit.php');
remove_menu_page('wpcf7');
}
}
add_action( 'admin_menu', 'remove_menus' , 100 );
这是我迄今为止尝试过的方法,它在所有页面上都运行良好。
My question is I dont want to show home - Front page (Please see my image) If logged in user is not admin. and also I want to hide add new
您可以使用用户的角色能力,并允许在角色的基础上添加新项目。
function manage_user_action() {
// get current login user's role
$roles = wp_get_current_user()->roles;
if( !in_array('administrator',$roles)){
//remove capabilities
$roles->remove_cap( 'edit_pages');
}
}
add_action( 'admin_init', 'manage_user_action');
从列表中删除页面
function jp_exclude_pages_from_admin($query) {
global $pagenow, $post_type;
if ( !current_user_can( 'administrator' ) && $pagenow == 'edit.php' && $post_type == 'page' )
$query->query_vars['post__not_in'] = array( '10'); // Enter your page IDs here
}
add_filter( 'parse_query', 'jp_exclude_pages_from_admin' );
如需更多帮助,请参阅此 link:Click Here
我扩展了@dineshkashera 的答案以通过 ID 定位特定用户,代码应如下所示:
function jp_exclude_pages_from_admin($query) {
global $pagenow, $post_type;
$current_user_id = get_current_user_id();
if ( $current_user_id == 2 && $pagenow == 'edit.php' && $post_type == 'page' )
$query->query_vars['post__not_in'] = array( '11', '12','13' ); // Enter your page IDs here
}
add_filter( 'parse_query', 'jp_exclude_pages_from_admin' );
此代码将获取 ID 为 2 的用户,并从其 WP 页面编辑屏幕中删除页面 ID 11、12 和 13。
我的形象
我只是想为某些用户隐藏特定页面。
function remove_menus(){
// get current login user's role
$roles = wp_get_current_user()->roles;
// test role
if( in_array('administrator',$roles)){
remove_menu_page( 'edit-comments.php' ); //Posts
remove_menu_page( 'tools.php' );
remove_menu_page('edit.php');
remove_menu_page('wpcf7');
}
}
add_action( 'admin_menu', 'remove_menus' , 100 );
这是我迄今为止尝试过的方法,它在所有页面上都运行良好。
My question is I dont want to show home - Front page (Please see my image) If logged in user is not admin. and also I want to hide add new
您可以使用用户的角色能力,并允许在角色的基础上添加新项目。
function manage_user_action() {
// get current login user's role
$roles = wp_get_current_user()->roles;
if( !in_array('administrator',$roles)){
//remove capabilities
$roles->remove_cap( 'edit_pages');
}
}
add_action( 'admin_init', 'manage_user_action');
从列表中删除页面
function jp_exclude_pages_from_admin($query) {
global $pagenow, $post_type;
if ( !current_user_can( 'administrator' ) && $pagenow == 'edit.php' && $post_type == 'page' )
$query->query_vars['post__not_in'] = array( '10'); // Enter your page IDs here
}
add_filter( 'parse_query', 'jp_exclude_pages_from_admin' );
如需更多帮助,请参阅此 link:Click Here
我扩展了@dineshkashera 的答案以通过 ID 定位特定用户,代码应如下所示:
function jp_exclude_pages_from_admin($query) {
global $pagenow, $post_type;
$current_user_id = get_current_user_id();
if ( $current_user_id == 2 && $pagenow == 'edit.php' && $post_type == 'page' )
$query->query_vars['post__not_in'] = array( '11', '12','13' ); // Enter your page IDs here
}
add_filter( 'parse_query', 'jp_exclude_pages_from_admin' );
此代码将获取 ID 为 2 的用户,并从其 WP 页面编辑屏幕中删除页面 ID 11、12 和 13。