# Navigation menu broken after a WordPress update

> The menu shows up empty, unstyled, or the mobile hamburger button stops responding after a theme or plugin update: a WordPress menu depends on a location declared by the theme and a walker class that renders its HTML, and an update can change either one without warning.

- Source canonique : [https://allaux.fr/en/wordpress-woocommerce/problemes/menu-navigation-casse](https://allaux.fr/en/wordpress-woocommerce/problemes/menu-navigation-casse)
- Langue : EN
- Dernière mise à jour : 2026-09-30

## Direct answer

> Clear the page cache first, then open Appearance > Menus and check the Manage Locations tab: an update can rename the location the theme expects, leaving the menu assigned to nothing. If the location is right and the menu is still empty, activate a default theme for one test to decide between theme and plugin.

## How I go about it

1. **Ruling out caching** — I clear page caching, caching plugin and server cache, before anything else: a menu edited recently but still served from a cached version is the simplest and most common cause.
2. **Checking the menu location** — I check under Appearance > Menus that the location expected by the theme still exists and that the right menu is assigned to it; a theme update can rename or drop a location.
3. **Inspecting the generated HTML** — I compare the HTML the menu produces against what the theme, or its custom mega-menu, expects: a walker class changed by the update sometimes shifts the structure the CSS or JavaScript relies on.
4. **Testing the mobile menu separately** — I check the hamburger button’s behaviour independently of the desktop menu: a jQuery version conflict, or two scripts both trying to handle the same click, often breaks only the mobile menu.
5. **Checking the page builder** — If an Elementor menu widget is used in the header, I check that it points to the same menu, since it follows a rendering path separate from the theme’s native menu location.

## What I handle regularly

- The site menu shows nothing after a theme update
- The menu shows up but loses all its styling, layout broken
- The mobile hamburger button stops responding while the desktop menu works fine
- A menu edited under Appearance > Menus doesn’t show up for visitors
- The menu shown differs between the homepage and other pages

## What breaks a menu

A WordPress menu relies on a location declared by the theme through register_nav_menu(), and on a walker class — often Walker_Nav_Menu or a custom class for a mega-menu or an off-canvas mobile menu — that turns the menu structure into HTML. A theme update can rename or drop an existing location, or change the HTML structure the walker expects: the menu assigned under the old version then silently stops rendering or loses its behaviour.

Before digging further, a page-caching plugin still serving the old version of a page after a menu edit is a far more common cause than an actual bug: it’s always worth ruling out first.

Mobile hamburger menus specifically depend on JavaScript, often jQuery. A jQuery version bump brought in by a theme or plugin update, or two scripts both trying to handle the same click event, breaks the button without touching the desktop menu. An Elementor menu widget placed in a header template follows a rendering path separate from the theme’s native menu location: the two can drift apart after an update.

## Clear the cache before digging further

> Reassigning a menu location or clearing a cache takes minutes, and is configuration work. Rebuilding a walker class or the mobile menu’s JavaScript for the theme’s current version is development work — worth telling apart before diagnosing.

## Related pages

- **Slow WordPress site** — A cache not cleared after an edit also affects perceived loading times. ([/wordpress-woocommerce/site-lent](/wordpress-woocommerce/site-lent))
- **Custom extension** — Rebuilding a walker or a custom mega-menu for a new theme version. ([/wordpress-woocommerce/extension-sur-mesure](/wordpress-woocommerce/extension-sur-mesure))
- **404 error after migration** — Another common type of breakage after an update or a migration. ([/wordpress-woocommerce/problemes/erreur-404-apres-migration](/wordpress-woocommerce/problemes/erreur-404-apres-migration))

## FAQ

### The menu disappeared right after an automatic update, is that related?

Very likely. I check first whether the menu location declared by the theme was renamed or removed in the new version.

### I cleared the cache and nothing changed, what next?

That’s a sign the problem isn’t just caching: I then move on to checking the menu location and the HTML structure produced by the walker.

### Why does the desktop menu work but not the mobile one?

The mobile menu depends on a separate JavaScript script, often jQuery: a version conflict, or two scripts handling the same button, breaks only that behaviour without touching the desktop menu’s HTML.

### I use Elementor for my header, does that change anything?

Yes: an Elementor menu widget doesn’t go through the theme’s native location, it follows its own rendering path. The two can show different menus after an update if only one of them kept up.

### How long does it take to fix the menu?

If it’s a cache or a misassigned location, a few minutes are enough. If the walker or the mobile script needs rebuilding for the theme’s current version, it depends on how complex the original menu is.
