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 yourWPsite.com/WPsubdirectory (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 WordPress.com or search for themes at WordPress.org.

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

Written by Kathy E. Gill

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

This article has 2 comments

Leave a Reply

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