Сүрөттөө
Your theme’s menu, upgraded. Advanced Menus adds the things people always end up wanting from their navigation, and it does it inside Appearance > Menus, on the items you already have. No page builder, no theme lock-in, no new admin screens to learn.
On every menu item
- An icon from a built in library of more than 90 inline SVG icons, or any image from your media library. Before, after or above the label, or icon only with the label kept for screen readers.
- A badge: “New”, “Sale”, “-20%”, in five colour presets or your own colours.
- The description shown as a subtitle under the label.
- A highlight style: solid or outline button, for the one item that deserves attention.
- Visibility rules: everyone, logged in users (optionally only some roles), logged out visitors, desktop only, mobile only, and a date window. Hidden items take their children with them.
Mega menus
Tick “Mega menu” on a top level item and its child items become columns. Each column is a heading with the third level as its links, or one of these instead:
- Products: the most recent, featured, on sale, best selling, or from one category, with thumbnail and price (WooCommerce).
- Product categories, with thumbnail and product count, top level or under a chosen parent (WooCommerce).
- Recent posts, optionally from one category.
- An image, linked to the item’s URL.
- A synced pattern, built once under Appearance > Patterns.
- Custom content: HTML and shortcodes.
Panels can be full width, the width of the menu, or fit their content. Columns can span two, three or four tracks. Below the mobile breakpoint the panel becomes a plain nested list, so nothing is lost on a phone.
Item types
Turn a custom link into a search form (inline, or an icon that expands, with live results as you type), a cart link with a live count and a dropdown mini cart, an account link that becomes a menu of account pages once signed in, a block of custom content, or a divider. A “no link” option turns any item into a heading.
Mobile drawer
A slide in drawer built from any menu, from the left or the right, with accordion submenus, an optional search box, and account and cart links. Open it from a floating button, from your theme’s own menu button (enter its selector and the theme menu is replaced), from the [demfilz_menu_button] shortcode, from the block, or from any element carrying the attribute data-dadm-open. Focus is trapped inside while it is open, Escape closes it, and focus returns to the button.
Sticky header
Give it a CSS selector and the header stays on screen while scrolling. A placeholder stops the page jumping, the admin bar is accounted for, a shrink class is added after a short scroll, and it can be desktop only.
Colours and shape, live
Panel colours, accent colour, corner radius, shadow, font size and a light, dark or automatic colour scheme are in the Customizer with an instant preview.
Place menus anywhere
The “Advanced Menu” block, the [demfilz_menu] shortcode and the “Advanced Menu” widget render a horizontal bar, a vertical list, or a drawer button.
Built properly
- Works with the theme you have: the plugin enhances the menus your theme prints through standard WordPress filters. Themes that print two levels get a third level for mega menus.
- Keyboard and screen reader support: aria-expanded, arrow keys, Escape, focus trap, visible focus rings, reduced motion respected.
- One small stylesheet and one script, loaded only when a feature is on. No jQuery. Nothing loaded from anywhere else: icons are inline SVG.
- Product columns are cached and refreshed when a product is saved.
- Settings export and import as JSON.
- Hooks for developers:
dadm_item_visible,dadm_icons,dadm_search_results,dadm_column_html,dadm_product_query_args,dadm_before_drawer_menu,dadm_after_drawer_menu. - No external services. Nothing leaves your site.
Скриншоттор







Блоктор
This plugin provides 1 block.
- Advanced Menu
Орнотуу
- Upload the plugin folder to
/wp-content/plugins/, or install it from Plugins > Add New. - Activate it.
- Open Appearance > Menus. Every item now has an “Advanced Menus” panel: click “Options” to set an icon, a badge, visibility rules or mega menu settings. Save the menu.
- Open Appearance > Advanced Menus for the drawer, the sticky header, search and behaviour settings.
- Open Appearance > Customize > Advanced Menus to change the colours with a live preview.
FAQ.KG
-
Does it work with my theme?
-
It works with any theme that prints its menus with the standard
wp_nav_menu()function, which is nearly all of them. The plugin adds to the menu through WordPress filters; it does not replace the theme’s markup. If a theme uses a custom menu walker that skips those filters, use the block, shortcode or widget to render the menu instead, or the drawer for mobile. -
The plugin switches that screen on for block themes. Build the menu there, then place it with the “Advanced Menu” block in your header template part, or enable the drawer, which works with every theme.
-
No. Under Appearance > Advanced Menus > Off-canvas enter the selector of the theme’s button (for example
.menu-toggle) in “Reuse the theme’s menu button” and switch the floating button off. Taps on the theme’s button then open the drawer. -
Create the structure in Appearance > Menus: a top level item, child items for the columns, and grandchild items for the links in each column. On the top level item open “Options”, the “Mega menu” tab, tick “Mega menu” and save. On a child item choose a column type to show products, posts, an image or custom content instead of links.
-
Some themes print their menu two levels deep. The plugin lifts that to three levels for menus that contain a mega item (Appearance > Advanced Menus > Integration > Mega menu depth). If the third level still does not show, the theme uses a custom walker; use the block or shortcode for that menu.
-
Can I show an item only to logged in users?
-
Yes. Open the item’s “Visibility” tab and choose “Logged in users”. Tick roles to limit it further. “Logged out visitors” does the opposite, and the date fields show an item only between two dates. Login and date rules are applied on the server for every menu printed with the standard wp_nav_menu() function, but they only decide what the menu shows: the linked pages stay reachable by URL, so protect private pages with a membership plugin as well.
-
Where do the icons come from?
-
They are drawn by the plugin as inline SVG and shipped with it. Nothing is loaded from a font service or a CDN. You can also pick any image from the media library, and developers can add icons with the
dadm_iconsfilter. -
How do I add the mobile drawer to my header?
-
Enable the drawer under Appearance > Advanced Menus > Off-canvas and choose a menu. The floating button appears on its own. To put a button in your own header, add the attribute
data-dadm-opento any element, use the[demfilz_menu_button]shortcode, or add the “Advanced Menu” block set to “Drawer button”. -
How do I make my header sticky?
-
Under Appearance > Advanced Menus > Sticky header, enable it and enter the CSS selector of your header, for example
#mastheadorheader.site-header. Right click the header in your browser and choose Inspect to find its id or class. -
Does it need WooCommerce?
-
No. Without WooCommerce, cart items are hidden, product columns show a short note, and the account item links to the WordPress login and profile pages. With WooCommerce you get the cart count, the mini cart, product columns and account endpoints.
-
Does the live search expose anything private?
-
No. The search endpoint returns only published, public, non password protected content, the same content a visitor could find with the normal site search. Results are capped at the number set in the settings.
-
Does the plugin send data anywhere?
-
No. There are no external services, no tracking and no outbound calls.
Сын-пикирлер
There are no reviews for this plugin.
Contributors & Developers
“Demfilz Advanced Menus” is open source software. The following people have contributed to this plugin.
МүчөлөрүTranslate “Demfilz Advanced Menus” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Өзгөртүүлөр
1.0.2
- The output buffers that capture the drawer hooks and the WooCommerce mini cart are closed in a finally block, so a hooked callback can never leave the buffer stack open.
- The live search endpoint documents in code why it is public (read only, published public content only).
1.0.1
- Parents in depth limited menus (a footer printed one level deep) no longer get arrows, ARIA state or a swallowed first tap for a submenu that is never printed.
- The “Recent posts” column honours its category.
- The cart count and the mini cart refresh after an AJAX add to cart on sites without the classic cart widget.
- The breakpoint script and the colour scheme classes print on every page, so block, shortcode and widget menus paint correctly with “Theme menus: None”.
- Wide and full alignment work on the Advanced Menu block.
- Cart and account dropdowns open on a tap below the breakpoint and announce their state; the live search field is a combobox.
- A finger on a touch screen laptop taps to open; keyboard focus stays visible in forced colours mode; long labels no longer run under the toggle buttons; third level lists inside a mega panel are no longer announced as collapsed.
- Drawer: no layout shift from the scrollbar, readable links on a light drawer colour, safe area insets for the floating button, print styles.
- Hardening: colours re-validated at output, a role that no longer exists stays on an item’s visibility rule, out of stock products follow the shop setting in live search, cleaner uninstall.
1.0.0
- Initial release: icons, badges, descriptions, highlights, visibility rules, mega menus with product, product category, post, image, pattern and content columns, search, cart, account, content and divider item types, off-canvas drawer (floating button or the theme’s own button), sticky header, Customizer styling with live preview, block, shortcode and widget, settings import and export.
