Admin Menu Editor For WordPress
Here is my latest and hack-iest plugin yet – Admin Menu Editor. It’s a WordPress plugin that will let you manually edit the Dashboard menu. You can reorder the menus, show/hide specific items, change access rights, and more. The plugin is still a bit rough around the edges, so a good understading of WP internals is recommended (but not required).
Features
- Sort menu items any way you want by simple drag & drop.
- Move a menu item to a different submenu via cut & paste. Note that if you move an item that belongs to a plugin, you will need to modify the “File” attribute to point to the right parent file (e.g. instead of “akismet-key-config” use “options-general.php?page=akismet-key-config”).
- Edit any existing menu – change the title, access rights, menu icon and so on. Note that you can’t lower the required access rights, but you can change them to be more restrictive.
- Hide/show any menu or menu item. A hidden menu is invisible to all users, including administrators.
- Create custom menus that point to any part of the Dashboard. For example, you could create a new menu leading directly to the “Pending comments” page.
Here’s a screenshot :
Download
admin-menu-editor.zip (33 KB)
Requirements :
- WordPress 2.7 or later
- PHP 5 or later
Known Issues
The basic idea for the plugin was suggested by several commenters way back in October. However, the internal menu system that WordPress uses is obscure and unsuitable for direct manipulation, so I spent quite a while inventing workarounds. And even after a few weeks of pondering, there are some things I haven’t quite fixed.
- If you delete any of the default menus they will reappear after saving. This is not a bug, it’s a feature
- As I mentioned before, the access rights required for using a particular menu item can’t be lowered, but can be made more strict. I think.
- Also, a plugin’s menu that is moved to a different submenu will not work unless you also include the parent file in the “File” field. This is because WP “ties” the menu item to it’s parent menu and won’t recognize it in a different submenu.
- If you create a custom menu (or change the “File” setting of an existing menu), be sure to tick the “Custom” checkbox. Otherwise that item will not show up in the final Dashboard menu.
Merry Christmas, by the way

Here’s an example : Say you want to move a plugin’s page from the “Settings” menu to the “Tools” menu. If you look at the “Settings” menu in the editor, you will see that its file field is set to “options-general.php”. This is the “parent file”. After you cuty & paste the plugin’s menu entry to the “Tools” menu, you will need to edit its “File” field to say “options-general.php?page=my_plugin” (replace “my_plugin” with whatever value was in the plugin page’s “File” field originally).
I’ve looked into automating this, but the internal menu structure that WP uses is so messy that it’s not really practical.
hi
How can I reset all settings?
I did a few mistakes in edit menus and now menu editor page Is not fully loaded … Please see the picture :
http://i.imgur.com/8sWNG.jpg
::: reset default menu button and reset menu button and other buttons do not work too
You can reset the settings by deactivating the plugin, then uninstalling it using the appropriate “Delete” link in the “Plugins” tab. This will remove the plugin’s settings.
That said, the plugin really shouldn’t have stopped working just because you made a mistake while editing a menu; it’s probably a bug. If you could check your browser’s error console (FF – Tools -> Error Console, IE – double-click the exclamation icon in the status bar) for any JavaScript-related error messages that might show inthe editor’s tab, I might be able to fix it.
I use this plugin for MU and I can’t use delet link
I removed it from my server and upload it again. But the settings did not reset.
and error :
in FF :
Error: entry.defaults is undefined
Source File: http://…/wp-content/mu-plugins/admin-menu-editor/menu-editor.js?ver=2.8.3
Line: 184
in IE:
Message: ‘defaults’ is null or not an object
Line: 182
Char: 2
Code: 0
URI: http://…/wp-content/mu-plugins/admin-menu-editor/menu-editor.js?ver=2.8.3
In that case, you need to manually delete the “ws_menu_editor” option from your wp_options table.
I’ll see what I can do about that error.
Err, I mean the wp_sitemeta table.
thank you very much !
This plugin is amazing.. If I were to make changes to menus will it maintained after updates of WP?
Also, If I am going to create new admin views is it better to duplicate an existing and then make the changes or just make the changes on the original?
Not exaclty sure how the WP updates impact my changes/ additions.
How do I make menu’s to be user level specific?
thanks again!
In general, your changes should be retained when you update WP. With the obvious exception that if the new WP version removes a menu then that menu will no longer work even if you still have it in the custom menu structure.
User levels are deprecated. I would recommend using capabilities instead. For example, you can make a menu item be only visible to administrators by entering “manage_options” in the “Access level” field.
Hi!
Your plugin is just simply amazing!.
I have the same problem as Elia (173). How can I reset plugin settings? I deleted the plugin files from Wp-content and uploaded again, but settings still are the same. I can’t see the Options menu to acces the plugin. Thanks.
See my responses to Elia, then.
In short:
* WP : Delete the plugin via the Delete link in the Plugins tab. Manually removing it from /wp-content/ will not help.
* WPMU : Delete ws_menu_editor from wp_sitemeta.
Absolutely one of the best plugins available for wordpress. Totally invaluable, thank you very much!
This is a *great* plugin, but I have a problem. I am running a wpmu installation. I want to edit the menus and have all sites show what I set. Right now, I am logging into each site backend, making changes, then making the menu editor link not visible. Is there a way to make global changes to the admin menu?
Have you installed it in /mu-plugins/ (and according to the instructions in readme.txt)? That should allow you to edit the menu for all blogs at once.
sorry, I should have read the readme.txt
I had installed it like a regular plugin and activated it sitewide.
Thanks for your help – it works perfect! This plugin is a major help to those running wpmu!
I hid the whole menu and now I can’t get it back. I deleted the whole plugin from mu-plugin but when I upload a fresh plugin it hides it again automatically. I think I must manually uninstall it but how do i that without the menu?
Delete “ws_menu_editor” from the wp_sitemeta table.
Thanks bro, and thanks for getting back so quickly. Just threw ya a few bucks. Excellent mod.
Im having this problem:
http://wordpress.org/support/topic/165717?replies=5
Which is solved deactivating the Admin Menu Editor.
I’ dont’t know if it’s because white spaces, utf-8 ascii or what… :S
The plug-in is great!!! Unfortunately I can’t use it on my blog now…
Hmm, if that thread is anything to go by, the real cause of the problem is probably either WP itself or a botched plugin install/upgrade. It seems very unlikely that half a dozen wildly different plugins would all cause the same mysterious bug (and only on specific blogs).
I’m having trouble with access levels. I tried “10″, but no matter what blow owners are able to see the whole menu. How do you change it so that blog owners can’t see a menu item but the site administrator is the only one who can see it?
Ok, it seems I can’t change the access levels for any of the default menu items. I’m using “10″ and “edit_plugins” in the access field, and I also changed the users to editors and it still shows up. Is there any way to do that using this plugin?
AFAIK, this is a limitation of the WordPress capability system – there is no capability or access level that is specific to the site administrator. Both site admins and blog admins are treated as equal, capability-wise.
If you don’t want the blog owners to see a particular menu item, try placing it in the “Site Admin” menu.
[...] Plugin on WordPress.org Plugin Homepage [...]
Wow. I have to say this might be the best plugin I’ve ever downloaded. You should contribute this to the WP core! This is an absolutely invaluable tool for running Wordpress as a CMS!
Thank you so much for this plugin! I hope that you can help me with a weird thing that’s happening when I create a new/custom menu.
I can cut/paste items from other menus into the custom menu, but the custom menu displays oddly. The menu name doesn’t show up, and the items on the menu only go about half way across (then wrap).
When it’s above another menu, it overlaps. When it’s by itself at the bottom, it of course doesn’t overlap, but it’s easier to see the “half width” display.
I’ve viewed it using Firefox and IE6 (at work) and it still looks the same. I’ve deactivated all my plugins and reactivated ME and it still looks the same. I switched to the default theme, and still the same weird menu display. Any idea what this is?
Thanks again!
Hmm, I’ve never seen anything like that. How about a screenshot?
Also, what are the CSS class and CSS id of that menu set to? For reference, the defaults are “menu-top” for CSS class and “custom_menu_1″ for CSS ID.
Thanks for getting back to me.
Here’s the screenshot: http://www.ripplesofimprovement.com/articles/menu-editor-screen-shot/
As for the CSS class and CSS id of the menu, I didn’t change them. The CSS class is listed as: wp-menu-separator-last
And the CSS id box is empty.
Is that the problem? Should I change them to “menu-top” and “custom_menu_1″?
Thanks!
Cathy
Well, heck! Whatya know? I did change them and suddenly it works now. I don’t know why they said something else. I know I didn’t change them deliberately.
Cool! I’m off to add more to the menu. Thanks again!
Umm…dumb question…can you only add 2 custom menus? Whenever I try to add a 3rd, it replaces the 2nd.