Key takeaways
- If Appearance shows Editor but no Menus, you have a block theme. WordPress.org says block themes on WordPress 6.0 and later don’t get the classic Menus screen by default.
- On a classic theme, a saved menu only appears after you tick a Display location under Menu Settings and click Save Menu.
- On a block theme, the menu shows only when a Navigation block in the header points to it, and a homepage template can have its own Navigation block pointing to a different menu.
- Clicking Edit on a Page List turns it into separate links, and new pages stop being added to the menu automatically.
- When a change doesn’t show, check the plugin cache first, then the host or CDN cache, then the browser. Look at the page in a private window before you edit anything again.
You publish a new Services page and go looking for the screen that puts it in the header. Maybe you find Menus, drag the page in, save, and the header stays the same. Maybe Appearance has no Menus item at all, just something called Editor. Neither means WordPress is broken. Your site uses one of two menu systems, and most menu problems come from editing in one system while the site displays the other.
The fix is to find out which system your theme uses, edit the menu there, and then confirm that the saved menu is the one visitors actually get. If you’re adding a page for the first time, our guide to adding pages in WordPress covers that part. This article starts once the page exists.
Which screen edits your menu depends on your theme
Open the Appearance menu in the dashboard. If it has Editor but no Menus, you have a block theme, such as Twenty Twenty-Four. If it has Menus and usually Customize, you have a classic or hybrid theme. WordPress.org’s Menus screen documentation says 5.9 was the last version that showed that screen on every site by default. From 6.0 on, block themes manage navigation through the Navigation block. Some classic and hybrid themes, and some plugins, still bring the old screen back, so trust what your own dashboard shows over any tutorial.
| Your setup | Where to edit | What makes it appear |
|---|---|---|
| Classic theme | Appearance > Menus | A ticked Display location |
| Classic theme, with live preview | Appearance > Customize > Menus | A Menu Location set in the Customizer, then Publish |
| Block theme | Appearance > Editor > Navigation | A Navigation block in the header (or another template part) pointing to that menu |
| Header built in Elementor, Divi or a similar builder | The builder’s header template and its menu widget | Whichever menu the widget is set to |
Before you change anything, write down three things: the theme name, its type, and the screen you’re using. If the result looks wrong later, that note tells you where to look first.
How to edit a menu on a classic theme
You need an Administrator account, or any role with the edit_theme_options capability. By default, Editors can’t change menus.
- Go to Appearance > Menus. Pick the menu from “Select a menu to edit” and click Select. Sites often have several menus, so check the name. Editing the existing menu keeps its location, so the header stays filled while you work.
- Show any hidden panels. Click Screen Options at the top right. Some panels, such as Tags, are hidden by default. Turn on Link Target there too if you’ll need “open in new tab”.
- Add items. From Pages, Posts, Custom Links or Categories on the left, tick what you want and click Add to Menu.
- Reorder and nest. Drag items up or down. To make a dropdown, drag an item slightly to the right under its parent until it’s labelled “sub item”. Our guide to building a drop-down menu covers the details.
- Assign the location. Under Menu Settings, tick the Display location your theme uses: Primary, Header or whatever your theme calls it. This is the step people miss most often.
- Click Save Menu. This screen doesn’t save automatically. If you leave the page, your changes are lost.
- Check the live site in a private window. This screen has no preview. The Customizer route has one, if you’d rather see the change before it goes live.
Renaming, removing and new-tab links
To change the text visitors see without renaming the page, click the arrow on the item and edit Navigation Label. The page title stays the same. Remove in the same panel takes the item out of the menu and leaves the page alone. Once Link Target is turned on in Screen Options, each item gets an “Open link in a new tab” checkbox.
When a page exists, choose it from the Pages panel instead of pasting its address as a Custom Link. WordPress.com’s support docs point out that a pasted address never changes, so it leads to a 404 if the page’s URL changes later. A menu item picked from the Pages panel stays tied to the page.
How to edit a menu on a block theme
WordPress.org’s Site Editor navigation docs list every menu in one place, but they also make a point people miss: creating or editing a menu there doesn’t put it on the site. A Navigation block inside a template part has to use it.
- Go to Appearance > Editor > Navigation and select the menu.
- Edit the items. Add a page, post or custom link with the + button. Open List View to drag items and nest them into submenus. Nested items are much easier to select there than on the canvas.
- Rename or retarget a link by selecting it. You can edit the label text directly, and the link settings have an “Open in new tab” toggle.
- Save. The menu is now stored, but it may not be displayed yet.
- Check where it’s placed. Open Patterns or Template Parts, then Header (wording differs a little between versions). Select the Navigation block and confirm in the block settings that it uses the menu you just edited. Save the header.
- Set mobile behaviour. In the same block settings, Overlay Menu set to Off shows the full menu at every screen size with no hamburger icon. Mobile folds it behind a hamburger icon on small screens.
- Check other templates. A homepage or landing template can contain its own Navigation block that points to a different menu.
Why new pages stopped appearing in the menu
A new Navigation block often starts as a Page List, which adds every published page automatically. The Navigation block documentation explains that clicking Edit on it converts it into individual Page Link blocks. You can then remove or reorder single items, but newly published pages stop showing up on their own. That’s expected behaviour. From then on, add new pages to the menu yourself.
Adding WooCommerce product categories
WooCommerce’s documentation describes two routes. On a classic theme, turn on Product categories in Screen Options, and a Product Categories panel appears beside Pages. On a block theme, add a block inside the Navigation editor and search for Product Category Link.
Your category tree doesn’t come with them. One store owner on r/woocommerce found that parent and child categories went into the menu as one flat list. The fix was to drag each subcategory under its parent by hand.
Why a saved menu doesn’t show on the site
A menu that saved correctly but looks unchanged is usually not broken. Somewhere between the editor and the visitor, the site is showing something else. Check in this order and stop when you find the cause:
- Wrong editor. You edited in Menus while a block theme’s Navigation block draws the header, or the other way round.
- Not placed. On a classic theme, no Display location is ticked. On a block theme, the header has no Navigation block, or its block points to another menu.
- A different template. If the menu changed everywhere except the homepage, open that template under Appearance > Editor > Templates, select its Navigation block, choose the shared menu and save.
- A separate mobile menu. A mobile-menu plugin can show its own menu. In one wordpress.org thread, phones kept showing an old menu until the plugin was set to use the same WordPress menu as the desktop header.
- Cache. Clear the caching plugin first, then the host or CDN cache, then the browser. In another wordpress.org case, clearing the plugin and browser caches wasn’t enough, and only the host clearing its own server cache fixed it.
- A stale link. If one item leads to a 404, it’s probably a pasted address for a page whose slug changed. Remove it and add the page again from the list.
Open the page in a private window before you edit anything again. If it looks right there, the problem is cache and the menu is fine. Making the same edit over and over just makes it harder to tell what happened. If the page still looks old after every cache is cleared, our guide on a WordPress page not updating goes through the next layers.
Check it like a visitor before calling it done
The editor canvas shows roughly what the site looks like. It isn’t a phone. Open the published site on a real phone, open every submenu, and tap every link you changed.
Then put the mouse down. The W3C’s menus tutorial says fly-out menus must work with a keyboard as well as a mouse, shouldn’t disappear the moment the pointer leaves them, and need touch targets large enough to tap. Tab from the top of the page and watch for a visible focus outline. Open a submenu with Enter or Space, and close the mobile overlay with Escape.
Before a large reorganisation, take a screenshot of the item list. Page and post revisions don’t bring back menus, as our guide to undoing changes in WordPress explains. Without a record, an undo means rebuilding the menu from memory.
When to stop and get help
Label changes, reordering and adding a link are safe jobs to do yourself. Stop when the problem stops being about the menu:
- The Menus screen loads blank or shows PHP warnings such as “Cannot modify header information”. That points to a conflict in a theme or plugin. Isolate it on a staging copy, not by switching off plugins on the live site.
- Saving returns a 404 or “Bad Request”. On large menus, a server security rule can reject the save request. Your host can check its logs and relax the rule for the save, then turn it back on afterwards.
- Opening Menus causes “There has been a critical error on this website.”
- Your account can’t see the menu screens at all. Ask an administrator to check that your role has
edit_theme_options. - The header is built in a page builder, or the change means rebuilding a template rather than a list of links.
If you’d rather describe the change than click through it, SiteSelf makes menu edits like these on the live site through chat. It connects through the SiteSelf Connector plugin, fetches the changed page to check it, and reports what changed, which is how it handles everyday website edits.
Frequently asked questions
Can I get the old Menus screen back on a block theme?
Not by default. WordPress.org’s docs say block themes on 6.0 and later manage navigation through the Navigation block. Some plugins bring the classic screen back, but on a block theme the header still shows whatever its Navigation block points to.
Does removing a menu item delete the page?
No. Removing an item only takes the link out of the menu. The page stays published at its address, and other links to it still work.
I want to edit the dashboard sidebar, not the site menu. Is that the same thing?
No. The admin sidebar is a separate system, usually changed with a plugin such as an admin menu editor. Hiding a dashboard link doesn’t stop someone from opening that page by its URL. User roles and capabilities decide who has access.
Why does my menu look different on my phone?
Check the Navigation block’s Overlay Menu setting, and whether a mobile-menu plugin is showing a different menu. Then test the published site on a real phone, not the editor’s mobile preview.