Skip to content
WordPress Guide

How to Create a Menu in WordPress (Classic and Block)

Build your site's navigation yourself: pick the pages, order them, and put the menu where your theme expects it, in classic and block themes.

A bright home office desk with a laptop and a monitor
6 sections · 7 min read
In this article · 6 sections

Your site has six pages, and the top of it shows either all of them in a jumble or none of them at all. Perhaps a developer set up the menu years ago and you have never touched it. Perhaps you have just added a page called Pricing and it is nowhere to be seen.

WordPress does not build your navigation for you. You choose the links, put them in order and tell the theme where to show them. How you create a menu in WordPress depends on your theme: classic themes use the Menus screen, block themes use the Navigation block. It is one of the first jobs in our guide to managing a WordPress website, and one of the more forgiving: nothing you do here deletes a page, and a menu can be rebuilt in minutes.

Decide on the list before you open WordPress

Five minutes with a piece of paper saves a lot of dragging later. Write down the pages a new visitor most needs, in the order they would look for them. For most small businesses that is something like Home, Services, About, Reviews or Work, and Contact. A blog, if you have one, usually sits near the end.

Keep the labels short. The menu label does not have to match the page title: a page titled “Our Plumbing and Heating Services in Leeds” can appear in the menu as just “Services”. Short labels fit on one line on a laptop and leave room on a phone.

If several pages belong together, such as one page per service, note that too. You will put them under a single heading later, but that is a separate step, covered in our guide to adding a dropdown menu.

How to create a menu in WordPress with a classic theme

If Appearance → Menus exists on your dashboard, this is your route.

  1. Go to Appearance → Menus. If a menu already exists, it opens in the editor. To start a fresh one, click the create a new menu link near the top.
  2. Type a name such as “Main menu”. Visitors never see this name; it is only for you. Click Create Menu.
  3. In the Add menu items column on the left, open the Pages box. Tick the pages you want. The View All tab shows every published page, not just recent ones.
  4. Click Add to Menu. The pages appear in the menu structure on the right.
  5. Drag the items into the order you wrote down.
  6. Click the small arrow on any item to open its settings, and shorten the Navigation Label if the page title is long.
  7. Under Menu Settings at the bottom, tick the location meant for your main navigation. Themes often call it Primary or Header.
  8. Click Save Menu, then look at the site in a private browser window.

Posts and categories can be added the same way from their own boxes. Links to other websites, phone numbers and sections further down a page come from the Custom Links box, which has enough quirks of its own that we gave it a separate post on adding a custom link to a menu.

A menu does nothing until it is placed in a location. Locations are spots your theme has prepared: Primary, Secondary, Footer, Mobile, Top Bar and so on, with names chosen by the theme’s author. One theme might offer two, another six.

The Manage Locations tab at the top of the Menus screen lists every location your theme has and which menu sits in each. It is the quickest way to see the whole picture. A location with nothing selected prints nothing on the site. You can also put the same menu in more than one location, which is handy when the footer should repeat the main links.

The checkbox that adds pages for you

Also under Menu Settings is Automatically add new top-level pages to this menu. It sounds helpful. In practice it means every new page, including a thank-you page or a test page, lands in your main navigation the moment you publish it. Most business sites are better off with it unticked and pages added by hand.

Prefer to see it as you go?

Classic themes also let you build menus under Appearance → Customize → Menus, and the Menus screen has a button for managing them with live preview. It is the same menu stored in the same place, just with the site visible beside you. Nothing goes live until you press Publish.

Block themes: building the Navigation block

In a block theme there is no Menus screen. The menu is a Navigation block inside the header, and you edit it in the Site Editor.

  1. Go to Appearance → Editor and choose Navigation. You will see the menus your site has stored. Opening one lets you edit its links directly.
  2. Alternatively, open the header (or any template that shows it) and click the Navigation block in the header itself.
  3. To add an item, click the + inside the block and search for the page by name, or paste a web address.
  4. To reorder, drag items in List View, or select one and use the move arrows in its toolbar.
  5. Click a link to change its label. The label can differ from the page title, just as in a classic menu.
  6. Save. The Site Editor shows what you are about to save, which may include the header and the menu as separate items. Save both.

On a brand-new block theme, the header often shows every page automatically. That is a Page List block doing its default job, not a menu you built. Select it and press Edit in its toolbar, and WordPress converts the list into separate links that you can remove and reorder like any other item.

The Navigation block’s settings also let you choose which stored menu it shows, create a new one, or import a menu from a classic theme you used before. Importing saves real work after a theme switch, though check the result, because links to pages you have since deleted come across too.

When a page builder draws the header

If your header comes from a page builder or a theme’s header builder, the links themselves are usually still made under Appearance → Menus. The builder’s menu element simply asks which of those menus to display. So build the menu as described in the classic section, then open the builder’s header template and pick that menu in its menu widget. Theme locations may not matter at all here, because the builder is choosing the menu directly.

Small mistakes that cause big confusion

  • Editing the wrong menu. Sites collect old menus. Check the menu selector at the top of the Menus screen, or the Manage Locations tab, before editing, so you know you are changing the one visitors see.
  • Deleting a page that was in the menu. While the page sits in the trash, its menu item simply stops showing. Once the page is deleted permanently, the item goes too, so a page you recreate later has to be added to the menu again.
  • Changing a page’s slug. Menu items pointing at pages follow the page, so they update themselves. Custom links typed in by hand do not, and they break.
  • Too many top-level items. If the menu wraps onto two lines on a laptop, it will be crowded on a phone. Group related pages instead.
  • Not testing logged out. Some caching and membership plugins treat logged-in users differently. Always check in a private window.

If you have done all of this and the menu still will not appear, our checklist for a menu that is not showing walks through the causes one at a time. And for where the menu sits among the rest of the header, logo and footer, start from the header, footer and menu overview.

Frequently asked questions

Can I rename a menu without breaking it?

Yes. The menu name is only a label for you, so changing it does not move the menu out of its location or touch any of its links. Rename it in the Menu Name field on the Menus screen, or from the menu options in the Site Editor, then save. Clear names such as Main menu and Footer links help the next person.

Does the order of pages in the Pages list affect the menu?

No. A menu you build has its own order, set by dragging items. The page order setting only matters for automatic lists, such as the Page List block or older themes that fall back to listing all pages when no menu has been assigned.

Yes. In a classic theme, assign a menu to the footer location if the theme has one, or add a Navigation Menu widget to a footer widget area. In a block theme, add a Navigation block to the footer template part and choose which menu it shows.

How many menus can a site have?

As many as you like. WordPress stores each menu separately, and only the ones placed in a location or a Navigation block appear on the site. Delete old, unused menus now and then so nobody edits the wrong one by mistake.

If your theme makes a simple menu strangely hard, or the header was built in a way you cannot trace, our WordPress support service can make that one change for you and show you where it lives.

Next in this series: How to Add a Dropdown Menu in WordPress

Is Your Website Working Properly?

Get a free website health check from WebMaintor. We'll review your website's speed, security, forms, and technical health — and tell you exactly what needs attention.

No obligation. No automated reports. A real review by our team.