Admin Menu Editor For WordPress

Admin Menu Editor is 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.


  • Sort menu items any way you want by simple drag & drop.
  • Move a menu item to a different submenu via cut & paste.
  • Edit any existing menu – change the title, access rights, menu icon and so on. Note that in the free version you can’t relax menu permissions – i.e. give access rights to a role that originally didn’t have them – 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 :

Admin Menu Editor screenshot

This plugin also has a Pro version that offers a bunch of extra features.


The latest version of the plugin is always available on

Requirements :

  • WordPress 3.0 or later
  • PHP 5.2 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. This has been fixed in the Pro version.
  • Plugin menus that are moved to a different submenu will not work unless you put the full page URL in the “URL” field. This is because WP “ties” the menu item to it’s parent menu and won’t recognize it in a different submenu.
Related posts :

512 Responses to “Admin Menu Editor For WordPress”

  1. Jasnick says:

    Good evening – I’m using this plugin (thank you!) to restrict my Editor to just what he needs – how do I set it so he opens in the Dashboard and not his profile page? Thanks

  2. Jānis Elsts says:

    As far as I know, opening the Dashboard is usually the default. If Editor sees a different page after logging it, that probably means you have a plugin or theme that redirects them to that page. In this case, you’ll need to change the settings of that plugin/theme.

  3. Jasnick says:

    Thank you – yes I have a couple of plugins that do some of the same things as AME so I will investigate that. Thanks for very prompt reply.

  4. Jasnick says:

    Have spent all morning on this – have decided to live with the Profile page but am missing one
    menu item. Using plugin Enhanced Media Library Pro which add categories to media files. This adds a file to media Library in the Menu: Media Categories. The Editor needs access to this but it is not showing in his Menu, only Library and Add New. I have tried to add capabilities to Editor in User Role Editor: edit_tags and edit_media_categories but that doesn’t work. Can yousuggest anything? Thanks

  5. Jānis Elsts says:

    Adding capabilities sounds like the correct solution. You just need to find the right capabilities to add. Take a look at the “required capability” field of that menu item (in the menu editor) – what capability is listed there? Add that capability to the Editor role.

  6. Jasnick says:

    All of a sudden everything worked as it should with AME. I suspect a caching problem as I was trying all sorts of plugins and there may have been some conflicts. Thank you!

  7. Michael says:

    when migrating a whole site to another URL – all Menu options set – got lost. How could I mitrate all settings, so that all OLD SITE MENU STRUKTUREN are also available AT THE NEW SITE (historically this worked – suddenly since about 1-3 weeks no more)

  8. Jānis Elsts says:

    Use a migration tool that knows how to handle serialized PHP data.

    Most likely, the problem is that the current migration process blindly replaces all instances of the old URL in the database with the new one, without taking into account the fact that to change a serialized PHP string you must also update the stored string length. If something edits the URL in AME settings without also editing the length, it will corrupt your menu settings.

    The solution is to use a better search & replace tool. Here’s one option:

  9. Benbodhi says:


    Awesome plugin!
    I have a little admin menu plugin in the repo too, Admin Toolbar Menus.
    I’m currently working on some new features and would love your insight. I’m adding a new meta box on the left of the menus screen that list Admin Pages to choose from, just like the standard pages or posts section that lists all items to choose from. I have built the box already and can put my own links in there, but I need the list items to iterate through the available admin menu items.
    I notice your plugin would do this at some point but can’t seem to figure it out. I just need to go through the current admin menu items and display them in this list to choose from.
    I hope this makes sense and you can point me in the right direction. There is not a lot of documentation out there related to the admin menus.
    Thanks in advance!

  10. Jānis Elsts says:

    WordPress stores admin menu items in two global variables: $menu and $submenu. I don’t think their contents are documented anywhere, but try dumping them with something like print_r() – the basic structure is fairly easy to understand.

    Fair warning: There’s a lot of edge cases in the part of WP core that deals with the admin menu. For example, menu URLs are much more complex to generate than you might expect.

  11. Benbodhi says:

    Hey, thanks for the response… I have managed to do exactly that already and can dump the entire menu on the page, inside the new meta box. I am having trouble making the meta box contain all the items just like the standard pages one – converting these results to user friendly check boxes with the select all button below and the sorter above.
    I hope this makes sense and you can help me out, it’s been sending me in circles for quite some time now.

  12. Jānis Elsts says:

    Actually, I’ve never tried to reproduce this metabox, so I’m not sure I’ll be able to help you with that.

    At first glance, the overall markup looks pretty straightforward – the page list it’s just an unordered list of “<label><input …> Page name</label>” – but the CSS is specific to the menu customizer. Maybe you could make your plugin output the same HTML structure and then enqueue nav-menus.css and edit.css? As for “Select all”, you’ll probably have to write the click handler yourself.

Leave a Reply