Remove menu for the user which has ‘editor’ role in WordPress

We need to use ‘admin_menu’ hook to remove/hide menu from specific role type. Following code show example of this. First get role type then remove menu.

Open functions.php and write following code.

function remove_menus(){
// get current login user's role
$roles = wp_get_current_user()->roles;
 
// test role
if( !in_array('editor',$roles)){
return;
}
 
//remove menu from site backend.
remove_menu_page( 'index.php' ); //Dashboard
remove_menu_page( 'edit.php' ); //Posts
remove_menu_page( 'upload.php' ); //Media
remove_menu_page( 'edit-comments.php' ); //Comments
remove_menu_page( 'themes.php' ); //Appearance
remove_menu_page( 'plugins.php' ); //Plugins
remove_menu_page( 'users.php' ); //Users
remove_menu_page( 'tools.php' ); //Tools
remove_menu_page( 'options-general.php' ); //Settings
remove_menu_page( 'edit.php?post_type=page' ); //Pages
remove_menu_page('edit.php?post_type=testimonial'); // Custom post type 1
remove_menu_page('edit.php?post_type=homeslider'); // Custom post type 2
}
add_action( 'admin_menu', 'remove_menus' , 100 );

Please keep in mind that this code doesn’t remove user’s permission. That means user still can access menu directly from browser.

https://phptechnologytutorials.wordpress.com/2016/10/10/remove-menu-for-the-user-which-has-editor-role-in-wordpress/
  • Categories