Available for projects & agency overflow · Quick reply, from the person who does the work

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.

Describe my issue Send a message

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.

Related pages

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

besoin
etat
constructeur (facultatif)
extensions (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.

Frequently asked questions

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.