The mega menu plugin dilemma nobody talks about
If you've ever built a WordPress site with a serious navigation — e-commerce, docs, big content site — you know the drill.
Client: "we want one of those big fancy dropdown menus, you know, like the big sites have"
You: opens plugin directory 💀
And now you're stuck picking your poison:
Option A: The "powerful" ones. Feature-packed, look amazing in demos. Then you check the network tab: multiple render-blocking scripts, jQuery dependencies in 2026, its own styling system fighting your theme, and menu data stored in some custom format you'll never migrate out of. Your Lighthouse score files for divorce.
Option B: The "lightweight" ones. Fast, sure. But now you're writing HTML in a tiny textarea inside a modal inside the menu screen, and "visual editing" means refreshing the frontend 47 times.
Option C: Do it in the theme. Full control, zero bloat... and now every menu change is a dev ticket. Your client cannot touch it. You've become the mega menu.
I kept hitting this wall on client projects and the question that wouldn't leave me alone was:
WordPress already ships a visual builder. It's called the block editor. Why does every mega menu plugin ignore it and reinvent its own?
What if the mega menu was just... blocks?
Think about it. Gutenberg already gives you:
- columns, groups, rows — layout ✅
- headings, images, buttons, lists — content ✅
- a visual editing experience users already know ✅
- zero extra builder UI to load or learn ✅
So the experiment: what if clicking "Mega Menu" on a menu item just opened the block editor, and the frontend rendered those blocks inside the nav panel? No proprietary builder. No custom data format. No 2MB of assets.
Turns out it works, and honestly the constraints made the design better:
Store data like WordPress wants you to. Everything lives as nav_menu_item post meta — serialized block HTML, same as any post content. Delete the plugin someday? Your data is readable, exportable, not held hostage in custom tables.
Whitelist blocks instead of allowing everything. A mega menu doesn't need 200 block types. Core layout + content blocks, sanitized on save and on load, extendable via a filter when you actually need more:
add_filter( 'beplus_vmn_allowed_blocks', function ( array $blocks ): array {
$blocks[] = 'my-plugin/custom-block';
return $blocks;
} );
Render with a custom Walker, style with CSS custom properties. The frontend is just a Walker_Nav_Menu outputting panels — so themes override colors and spacing with CSS variables instead of !important wars.
Accessibility is not a v2 feature. ARIA attributes, keyboard navigation, focus trapping. If your mega menu traps keyboard users, it's not "powerful", it's broken.
Templates as plain JSON. Starter layouts load from the plugin, and themes can ship their own by dropping JSON files in {theme}/mega-menu-templates/. Child theme overrides parent. Export your layout, commit it to git, reuse it across projects.
The part where I tell you it exists
Yeah, this isn't hypothetical — I shipped it. It's called Beplus Visual Mega Navigation, it's free and open source on WordPress.org:
👉 https://wordpress.org/plugins/beplus-visual-mega-nav/
The flow is exactly what you'd hope: Appearance → Menus → click "Mega Menu" on any top-level item → toggle it on → build with blocks → save. That's it. No new dashboard section, no onboarding wizard, no upsell popups every 3 clicks.
It's early (v0.0.x early), which honestly is the best time to yell at me about it. If you try it and something feels off — the block whitelist, the hooks, the keyboard behavior — I genuinely want to hear it. Issues, feature requests, hot takes: all welcome.
The actual takeaway
Even if you never touch this plugin, here's the thing I'd push back on: stop accepting that "native to WordPress" and "good UX" are opposites. Half the plugin ecosystem rebuilds things core already does, then charges you performance and lock-in for the privilege.
The block editor is right there. Use it.
Building this in public — if you're into WordPress internals, Gutenberg experiments, or watching someone slowly lose their mind over focus trapping, let's connect. What's YOUR mega menu horror story? Drop it below 👇

Top comments (0)