WordPress is full of fun things, we can manipulate the things according to our needs from the dashboard to prevent user get confused. We seen, how to add Menu and Submenu in WordPress admin panel in our previous blog. WordPress admin dashboard full with lots of menu and submenu like Dashboard, Media, Post, Page, Comment, Appearance, Plugins, User and many more. In some scenario we need to remove the menu from the admin panel like you dont need 3rd party plugin menu either default menu
Function for remove menu item
remove_menu_page( string $menu_slug )
This will removes a top-level admin menu.
Example usage:
remove_menu_page( 'tools.php' )
remove_menu_page( 'plugin_menu_slug' )
Parameters
$menu_slug
string Required
The slug of the menu.
Return value
array|false The removed menu on success, false if not found.
Example
Remove contact form 7 menu from admin panel
add_action( 'admin_init', function () { remove_menu_page( 'edit.php?post_type=participants-database' ); //OR remove_menu_page( 'wpcf7' ); });
Remove Menu items by page
/** * Removes some menus by page. */ if ( ! function_exists( 'deregister_post_type' ) ) { function wpdocs_remove_menus(){ remove_menu_page( 'index.php' ); //Dashboard remove_menu_page( 'jetpack' ); //Jetpack* remove_menu_page( 'edit.php' ); //Posts remove_menu_page( 'upload.php' ); //Media remove_menu_page( 'edit.php?post_type=page' ); //Pages 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 } } add_action( 'admin_menu', 'wpdocs_remove_menus' ); ?>
do_action( ‘admin_init’ )
Fires as an admin screen or script is being initialized. (admin_init
is fires before any other hook when a user accesses the admin arena.)
Additional
Remove post type from wordpress
Suppose we have a registered post type named “blog” and need to remove this from the admin panel then just follow these codes.
add_action( 'init', 'deregister_post_type' ); if ( ! function_exists( 'deregister_post_type' ) ) { function deregister_post_type() { unregister_post_type( 'blog' ); } }
do_action( ‘init’ )
This will fires after WordPress has been finished the loading but before any headers are sent.
Remove submenu page items
remove_submenu_page( 'plugin_menu_slug', 'plugin_submenu_slug' )
/** * Remove the Widgets submenu page. */ function remove_the_wp_menu() { $page = remove_submenu_page( "edit.php?post_type=blog", 'add-new' ); } add_action( 'admin_menu', 'remove_the_wp_menu', 999 );
add_action -> Add a callback function to your action hook.
admin_menu -> Fires earlier than the admin menu is loaded in Admin
If you need custom WordPress Development services then feel free to reach us and also explore our exclusive range of WordPress WooCommerce Plugins.
!!Have a Great Day Ahead!!
3 comments