How to remove access to menu options in admin panel
How can I restrict access to menu or submenu items in WordPress admin dashboard according to the user’s role ?
This function allow to restrict access to an element by url (e. g. /wp-admin/upload.php) or depending on the url parameter (e. g. post_type=acf_option_page) which is very useful to remove access to custom post type.
Insert this code on your functions.php file or plugin:
<?php /* * Remove access to menu options in admin panel for editors * */ add_action( 'admin_init', 'restrict_admin_with_redirect' ); function restrict_admin_with_redirect() { $restrictions = array( '/wp-admin/upload.php', 'post_type=acf_option_page' ); if( current_user_can('editor')) { foreach ( $restrictions as $restriction ) { if ($_SERVER['PHP_SELF'] == $restriction) { wp_redirect(admin_url()); exit; } if ($_SERVER['QUERY_STRING'] == $restriction) { wp_redirect(admin_url()); exit; } } } } ?>
Please not that this function only remove the access, but the menu items will remain visible!