How to position a WordPress admin menu

When developing for WordPress, one of the great thing about adding admin menus is the flexibility that it gives you. But that same flexibility has led to some truly awful user experiences.

Let me show some examples and explore what is wrong with some of the things that developers do and what best path is.

Where to stick it

First things first, you need to know where to put your new menu. Of course, you’d like it to be noticeable. Here’s Site Kit doing just this…

But why is Site Kit that important? It comes before Posts and Pages, surely the 2 most important aspects of WordPress, and probably the most used? The reality is that, although you can put your menu here, you really shouldn’t. Site Kit belongs at the bottom, which is where you’ll find most of the other plugins.

Where should menus be positioned?

Most plugins probably belong at the bottom. However, if your plugin is directly linked to one of the broad, core categories then you may want to put it with that.

For example, I have a plugin that adds additional video features to a site. I position that below “Media”, to keep everything media related together. If I could have got my plugin’s sub-menus down to one (I couldn’t), I’d have actually put it as a sub-menu under Media, rather than kept it as a main menu option.

Placing your plugin at the bottom of the menu

Beware, though, that because you have a pretty large range, and vaguely defined, of menu positions, even putting your plugin at the bottom of the menu isn’t the end of the potential problems.

All of these are positioned at the bottom of my test site’s menu…

Looks fine, right? But, as a user, how quickly would you be able to find one of them at a glance? Are they alphabetical? Some of them are. Those with the same priorities are, but they’re all over the place because many of them are positioned differently.

Is there a solution here? A definitive place to put them? No. Not until someone defines something.

Should it even be a menu?

I mean, you asked this before even working out the positioning, right?

Most of these third party menus should either not exist or should not have the sub-menu options that they do. Instead they clutter user’s admin screen.

Here are my rules for menu creation…

  • Should a sub-menu exist elsewhere?
    • Is it settings or tool related? In which case, that should be under that section, which is where users will expect to find it.
    • Don’t create sub-menus entirely for the purpose of help screens. WordPress already has functions to add help tabs to screens – use these
  • Should it exist at all?
    • Sub-menus which are merely upsells are annoying but quadruply so when they’re the only reason for a menu to exist. I often see menus where the only 2 sub-menus are plugin settings and an up-sell.
  • If you have no sub-menus, then seriously reconsider the use of the menu at all. Can it moved elsewhere or gotten rid of (see points above)

Help with your own dashboard menus

If you’re experiencing a cluttered menu, then there are plugins that can help. One such, that was recommended to me recently, is _AdminMenu. This collapses all the menus down to 5 broad categories, with options to sort the existing menus how you wish them to be.

I’m also working on a plugin myself that takes a different approach, following a lot of the rules that I’ve written here to move or remove menus.


The tl;dr of all of this is to keep menu usage to a minimum and where you need to add anything, be thoughtful about how you do it. Plugins have a tendency to be selfish, in an attempt to standout from the crowd. And, yes, they usually do standout, but not always for the reasons the developer hopes.

My goal for any plugin that I write is to make it look like it’s part of core. Use of APIs to make it blend in and good menu positioning are all key to that. A clean design that will users will appreciate will make your plugin standout in user’s minds just as well as a un-needed, badly positioned menu. But for good reasons.

One response

  1. Chris Pink avatar
    Chris Pink

    I couldn’t agree more. However I think a few lines in functions.php is much preferable to yet another plugin. (to be honest I was hoping this was it for site kit 😉

Talk to me!

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Discover more from David Artiss

Subscribe now to keep reading and get access to the full archive.

Continue reading