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.

Features

  • 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.

Download

admin-menu-editor.zip

The latest version of the plugin is always available on WordPress.org.

Requirements :

  • WordPress 4.1 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 :

544 Responses to “Admin Menu Editor For WordPress”

  1. Martin Quet says:

    Your plugin is the only WordPress plugin that allows you to rearrange the order of the Admin Menu, however, its functionality of purpose is hampered by one annoying phenomenon which is entirely out of your control. Plugin developers create plugins that, once installed, place icons in the Admin Menu in one or two (maybe even 3 locations), and in order for the plugin to be accessible those submenu items for that plugin MUST be located under the top-level menu in order for it to work. Hiding the original top level menu item (or original submenu items) using your plugin keeps the copy of the submenu item in a custom folder from working. Despite having all permissions and being a SuperAdmin at both the WordPress and Database Level, it gives me the message that I am not allowed to visit the page (even when the direct URL is provided in the URL of the Custom Menu sub-items).

    This renders the plugin almost pointless, because in order for me to have a custom menu that ACTUALLY WORKS, I must also keep the unhidden original icons for the plugins. So, instead of organizing a messy hodge podge of icons, I now have double the hodge-podge of icons and menu items — at best being able to replace the icon with a blank (the hover is not changed along the icon url in your custom menu) and changing the original top level menu’s name to an empty field. It still remains annoyingly visible, though, and must in order for the custom menus to function.

    Your plugin is superior to others available, sadly though, due to the nature of plugins and their relationship to the WP Admin Menu, your plugin less solves the problem of a horribly messy admin menu than it does exacerbate it, though tolerably so. This isn’t your fault. Why must plugin designers require that their icons be placed in the top level menu to function? Why must plugin designers require that their plugin have icons placed in 2 or 3 different submenus? I can’t believe I’m saying this, but I actually miss Joomla in the limited respect of managing my admin menu.

    If you can suggest any possible work around to allow me to hide the unwanted top level icons (currently defaced to reduce visual clutter), and yet retain the function of the submenu items in a custom menu, please let me know. This work around would greatly improve the function of your plugin. At present, its interaction with other plugins ( the main source of Admin menu clutter ) is beyond frustrating.

  2. White Shadow says:

    I may be misunderstanding your explanation, but to the best of my knowledge, at least submenu items can be moved to a custom menu without manually hiding the original or messing with duplicates.

    I just tried the following test on this same site:

    1) Create a new custom menu “Test”.
    2) Click on the “Settings” top-level menu item in the editor.
    3) Pick a random plugin-added menu item – I chose “WP Super Cache”.
    4) Drag & drop it on the custom menu created in step #1.
    5) Click “Save Changes”.

    Result:

    The “WP Super Cache” item now shows up under “Test”, and clicking it opens the WP Super Cache settings page – as expected. Also, no duplicate in “Settings”. I also moved a couple more plugin submenus to my “Test” menu and they all continued to work fine. Well, except WP highlighting the wrong top-level menu as “active”, but that would be pretty hard to fix with a plugin.

    However, moving a top-level menu into another menu is probably impossible.

  3. Martin Quet says:

    Dear White Shadow,

    Thank you for your response. The issue I’m having is that I have several plugins that might serve a similar purpose and more than one of them creates a top-level menu item. If every plugin required that a top-level icon be present in the menu in order for the page to be accessible it would not take long for the admin menu to become useless due to all of the clutter — and difficult to navigate unless you deliberately installed everything in the order you wished for it to appear.

    You are correct that often enough, submenu items do not care what toplevel menu they are in and will function if moved. However, many plugins regardless of whether they require a menu item to be top level or in a submenu, require that the plugin be located and unhidden in the original location it was installed in.

    For example, I install the plugin, SEO Rank Reporter. It has a top level menu with sub menu items. Suppose I have several plugins for SEO related purposes and I want them all grouped together. One of the ones already installed had a top level menu, which I marked as custom and renamed to “SEO”. Well, I can’t delete or hide the top level menu or the submenu items won’t work even if relocated. If I drag the submenu items to top level menu I want them in, the only thing that is going to happen after I save, is that I will be told that the submenu items do not exist in the default menu, so I must mark them all “custom” and the default copies of the submenu items will repopulate in the original top level menu. So, instead of having moved anything, all I’ve really done is make copies. It doubles the size of a menu that was already going to become unruly.

  4. […] is a nifty plug-in called Admin Menu Editor by W-Shadow which can quickly resolve this. I tried once to manually edit the PHP files for the toolbar, it was […]

  5. David says:

    I’m not sure if anyone else had this issue, but regardless of the settings I made, only admins could access plugin menus. Maybe that’s because I can only tighten restrictions, not open them up.

    My Hack:
    I was surprised, but if I made a duplicate, I could then increase, or decrease restrictions to whatever level needed. Not bad. Either delete the original, or deal with a million menus on your admin screen, but it works!

    Thanks!

  6. White Shadow says:

    Huh, I’m surprised creating a duplicate would actually work.

    The whole reason why you can only tighten restrictions is that in most cases the original restriction is not just present in the menu data structure, but an extra check is also hard-coded either in the WP core or the plugin whose menu you’re trying to modify. Menu Editor can change the permissions on the menu, but it can’t modify the extra checks in WP/plugin files.

  7. Nova says:

    I really like this plugin it is great for clearing the decks so that clients only see what they need to when updating their site, however I’ve gone and done an incredibly stupid thing. I hide the settings menu and now can’t get back into the plugin or any of the other menus I’ve hidden. I have deactivated and deleted the plugin and reinstalled but the settings remain the same.

    Any ideas?

    Nova

  8. White Shadow says:

    You can reset the menu configuration back to the default by going to http://example.com/wp-admin/?reset_admin_menu=1 (the plugin needs to be active when you do this.)

  9. Nova says:

    Thanks !

  10. Dave Moppert says:

    Uh oh… your plugin doesn’t work with the latest version of wordpress (3.2).

  11. White Shadow says:

    Do you have the latest version (1.1.2)? I’ve tested it with WP 3.2 and it seemed to work fine.

  12. […] Admin Menu Editor For WordPress […]

  13. Hi. Love the plugin.

    It works fine for me with regular install, but I’m having trouble finding how to access it (where to configure it) when either setup in the mu-plugins folder or Network Activated on multisite. Under either of these configurations I can’t find the ‘Menu Editor’ link anywhere within the admin menu system.

    If in the mu-plugins configuration I see the plugin listed under the listing of MU plugins, but I can’t find where to configure it.

    WP3.2.1 with multisite

    Thanks,
    Jeff

  14. Vijay says:

    Hi,

    Can you please give me some idea that why the menu is restored to default when I transfer my site from one domain to another domain by changing the urls from old domain to new domain in the database?

    Thanks,
    Vijay

  15. White Shadow says:

    @SiteSubscribe:
    There should be a Settings -> Menu Editor tab in the Dashboard of your root site. And I mean the standard admin panel here, not the new “Network Admin” section introduced in 3.2.

    I’ve just tested the latest version of the plugin (1.1.3) with WP 3.2.1 running in Multisite mode and the aforementioned menu shows up fine.

    @Vijay:
    If you change the URLs by doing a search & replace with SQL, you might inadvertently corrupt the menu configuration. The plugin would then load the default menu automatically.

    Try manually copying the ‘ws_menu_editor’ option from the old site to the new one. Alternatively, get the Pro version – it has a proper import/export feature built-in.

  16. I know that’s how it is supposed to work, but the ‘Menu Editor’ isn’t there under Settings when the plugin is Network activated. It only shows if I activate it on each sub-site individually (so my main site settings aren’t carried over).

    Could it be that only the Pro version works on multisite since it is working for you and not for me?

  17. White Shadow says:

    No, I specifically used the free version for that test.

    Maybe it’s a bug that only happens in your particular server environment. Try enabling WP_DEBUG and see if any errors show up.

  18. Charmed says:

    Ditto. Latest version not working with 3.2.1.
    It locked my clients editors out, then it locked me out after totally rearranging not only the admin menu but giving editors access to things they didn’t previously have.

Leave a Reply