如何为 wp 中的某些用户隐藏特定页面(来自 wp-admin)?

Dan*_*ves 1 php wordpress wordpress-theming custom-wordpress-pages wordpress-admin

我的形象

在此处输入图片说明

我只是想为某些用户隐藏特定页面。

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 );
Run Code Online (Sandbox Code Playgroud)

这是我现在尝试过的,并且在所有页面上都可以正常工作。

我的问题是我不想显示主页 - 首页(请看我的图片)如果登录用户不是管理员。而且我想隐藏添加新的

din*_*era 7

您可以使用用户的角色能力并允许基于角色添加新项目。

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');
Run Code Online (Sandbox Code Playgroud)

从列表中删除页面

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' ); 
Run Code Online (Sandbox Code Playgroud)

如需更多帮助,请参阅此链接:单击此处