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.
How I go about it
-
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.
-
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.
-
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.
-
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.
-
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.