The admin menu is kind of a pain to work with, it’s not very flexible and is in need of an overhaul. See this ongoing ticket on the subject.
What you can do is use the remove_submenu_page
function to remove the category and tag submenu pages, then add them on the top level via add_menu_page
. For example, this will remove the categories submenu and move it to the top level:
function wpa83704_adjust_the_wp_menu() {
remove_submenu_page(
'edit.php',
'edit-tags.php?taxonomy=category'
);
add_menu_page(
'Categories',
'Categories',
'add_users',
'edit-tags.php?taxonomy=category',
'',
'div',
6
);
}
add_action( 'admin_menu', 'wpa83704_adjust_the_wp_menu', 999 );
There are a couple of issues here though.
-
The icons that WordPress uses for menu items can’t readily be used for these new menu items, you need a URL to the image, or you can set it to
div
and you’ll have to add some CSS viaadmin_head
to get the icon you want in there. -
When you select the new Categories top-level menu item, the wrong menu item will be highlighted. The only way to fix this currently is via JavaScript. See this answer for some code to solve that.