How To Create Custom Menus In WordPress

Every WordPress theme comes pre-set with a default menu that is, usually, based on how you structure your pages. Some have drop-downs to show secondary pages (children) but some only show top-level pages.

With the advent of WordPress 3, you can now create a custom menu where you add or delete pages from the primary navigation at will. Or you can create a custom menu that you use somewhere else. Here’s how.

There are four steps:

  1. Create the new menu (give it a name)
  2. Add internal pages/external links
  3. Arrange the links however you like
  4. Use the new menu somewhere

But before you can create a menu, you must have content! (And the pages and posts must be published, not in draft form.)

1. Create the new menu

  1. Go to Appearance -> Menus [path is (if it exists)/wp-admin/nav-menus.php]
  2. Give the new menu a name. Don’t sweat the name, you can rename it later.
  3. Click “create menu”

custom WordPress menus

2. Add internal pages/external links

Once you have created the menu, you can add links.

WP custom menus

The left hand portions of this dashboard page should have changed from “grayed out” to “active black.” You can add

  • Custom links (any link on the web)
  • Posts
  • Pages
  • Category pages
  • Tag pages

If you do not see all of these options, click “Screen Options” in the upper right hand corner of the Dashboard screen. Then enable them by ticking the select boxes.

wordpress screen options
Screen options may need to be updated to view all menu types.

Adding custom links

When you paste the URL, remember to include the “http://” or it won’t work! Likewise, in the “label” field you will type whatever you want the hypertext link to read. Here’s an example:

Custom Link
Example of a custom link in a custom WordPress menu.

As soon as you click “Add to Menu”, this link will appear in your new menu window.

wordpress custom menus
There is now one link in the new menu

Adding posts

WordPress defaults to showing you the most recent posts but you can view all or search. Select any post that you want in the menu and click “Add to Menu”. Or skip this section.

Adding pages

Just as with posts, WordPress defaults to showing you the most recent pages but you can view all or search. If you are working on an alternative primary navigation menu, you will probably be making your selections from this content type. Tick off your selections, then click “Add to Menu.”

Adding a category or tag page

WordPress creates an archive page for categories and tags. Use either of these tools to add specific blog content types to the menu. Remember to click “Add to Menu” after you’ve made your selection.

3. Arrange the links however you like

Once you have all of the links that you want in your menu, now’s the time to arrange them. You’ll do this by click-and-drag. Suggestion: if there is no obvious order, such as sequential steps, consider putting the items in alphabetical order.

To create parent-child relationships, just drag. A nudge to the right makes a link the child of the link above it.

wordpress custom menus
Arrange the menu items by click-and-drag. Nudge to the right to nest links.

Don’t like the default link title? Click the “down arrow” to reveal an edit window. That’s also how you remove a link from the custom menu.

wordpress custom menus
You can change a link name

Finished? Click “Save Menu.”

4. Use the new menu somewhere

If your theme allows it (and most modern ones do), you can replace the default primary navigation created by the theme with this new menu you’ve created.

wordpress custom menus
Use the new menu to replace the default one.

Some themes support more than one custom menu. You can see themes that support custom menus at or search for themes at

Learn more with this step-by-step from and from the WordPress codex.

By Kathy E. Gill

Digital evangelist, speaker, writer, educator. Transplanted Southerner; teach newbies to ride motorcycles! @kegill

2 replies on “How To Create Custom Menus In WordPress”

Leave a Reply

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