Advanced Sidebar Menu


Uses the parent/child relationship of your pages or categories to generate menus based on the current section of your site. Assign a page or category to a parent and this will do the rest for you.

Keeps the menu clean and usable. Only related items display so you don’t have to worry about keeping a custom menu up to date or displaying links to items that don’t belong.

Check out Advanced Sidebar Menu PRO for more features including accordion menus, menu colors and styles, custom link text, excluding of pages, category ordering, custom post types, custom taxonomies, priority support, and so much more!

PRO version 8.9.0 is now available with accordion options to use links for open/close!


  • Page and Category widgets.
  • Option to display or not display the highest level parent page or category.
  • Option to display the menu when there is only the highest level parent.
  • Ability to order pages by (date, title, page order).
  • Exclude pages or categories by entering a comma separated list of ids.
  • Option to always display child pages or categories.
  • Option to select the levels of pages or categories to display when always display child is used.
  • Option to display or not display categories on single posts.
  • Ability to display each single post’s category in a new widget or in same list.

Page Widget Options

  • Add a title to the widget
  • Display the highest level parent page
  • Display menu when there is only the parent page
  • Order pages by (date, title, page order)
  • Exclude pages
  • Always display child Pages
  • Number of levels of child pages to display when always display child pages is checked

Category Widget Options

  • Add a title to the widget
  • Display the highest level parent category
  • Display menu when there is only the parent category
  • Display categories on single posts
  • Display each single post’s category in a new widget or in same list
  • Exclude categories
  • Always display child categories
  • Levels of Categories to display when always display child categories is checked

PRO Features

  • Ability to customize each page or navigation menu item link’s text.
  • Click-and-drag styling for page, category, and navigation menu widgets.
  • Styling options for links including color, background color, size, hover, and font weight.
  • Styling options for different levels of links.
  • Styling options for the current page or category.
  • Styling options for the parent of the current page or category.
  • Blocked styling options including borders, border width, and border colors.
  • Option to choose from 7 bullet styles or no bullets.
  • Accordion menu support for pages, categories, and navigation menus.
  • Accordion icon style and color selection.
  • Accordion option to keep all sections closed until clicked.
  • Accordion option to include highest level parent in accordion.
  • Accordion option to use links for open/close. NEW
  • Ability to exclude a page from all menus using a simple checkbox.
  • Link ordering for the category widget.
  • Number of levels of pages to show when “always display child pages” is not checked.
  • Ability to select and display custom post types.
  • Ability to select and display custom taxonomies.
  • Option to display only the current page’s parents, grandparents, and children.
  • Option to display child page siblings when on a child page (with or without grandchildren available).
  • Ability to display the widgets everywhere the widget area is used (including homepage if applicable).
  • Ability to select the highest level parent page/category.
  • Ability to select which levels of categories assigned posts will display under.
  • Ability to display assigned posts or custom post types under categories or taxonomies.
  • Ability to limit the number of posts or custom post types to display under categories.
  • Support for custom navigation menus from Appearance -> Menus.
  • Ability to display the current navigation menu item’s parents and children only.
  • Option to display the top-level navigation menu items when there are no child items or not viewing a menu item.
  • Priority support with access to members only support area.


This plugin includes the following languages:
* English (en_US)
* French (fr_FR)
* German (de_DE)
* Spanish (es_ES)


Developer docs may be found here.


Send pull requests via the GitHub Repo


  • Page widget options
  • Category widget options
  • Example of a page menu using the 2017 theme and default styles
  • Example of a category menu ordered by title using the 2017 theme and default styles


Use the standard WordPress plugins search and install.

Manual Installation

  1. Upload the advanced-sidebar-menu folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Drag the “Advanced Sidebar Pages Menu” widget, or the “Advanced Sidebar Categories Menu” widget into a sidebar.


The widget won’t show up?

The widgets in this plugin are smart enough to not show up on pages or categories where the only thing that would display is the title. While it may appear like the widget is broken, it is actually doing what it is intended to do.

The most common causes for this confusion come from one of these reasons:
1. The incorrect widget was selected. Categories have their own widget as pages have their own widget.
2. “Display the highest level parent page” or “Display the highest level parent category” is not checked.
3. The widget is currently not being viewed on a page (for the pages widget) or category (for the categories widget).

How do I change the styling of the current page?

You may add CSS to your theme’s style.css to change the way the menu looks.

For example the following CSS would:
1. Remove the dot to the left of the menu item.
2. Change the link color.
3. Add a background on hover.

.advanced-sidebar-menu li.current-menu-item a {
    color: black;

.advanced-sidebar-menu li.current-menu-item {
    list-style-type: none !important;

.advanced-sidebar-menu li.current-menu-item > a:hover {
    background: teal;

To style your menu without using any code upgrade to PRO.

How do you get the categories to display on single post pages?

The Categories Menu widget contains a “Display categories on single posts” checkbox, which will display the category menus based on the categories the current post is assigned to.

Does the menu change for each page you are on?

Yes. Based on whatever page, post or category you are on, the menu will change automatically to display the current parents and children.


October 30, 2021
Advanced Sidebar Menus is a nice little plugin that does what it says it does right out of the box. All you have to do is place the correct widget (for page hierarchy OR post category hierarchy) in the right location. Good job!
May 7, 2021
This is great, I'm using this plugin on a site with more than 100 pages and half a dozen categories. Previously to have different links on different pages. I made multiple sidebars. Keeping track in the widget area was work, with lots of clutter. Returning to a site made months before to change something was a bit daunting. This is so simple, if you are using pages, use the child parent relationship and for posts categories. I use the default sidebar and two widgets, simple, clean, straightforward... As long as I link the page with a parent or post with a category it's all automatic...
July 28, 2020
It was working fine until last update. Now child pages/categories doesn't have identation anymore. It's all together parent and child, it's a mess. What did happen?
July 1, 2019
I tried the free version of Advanced Sidebar Menu and could not get it to show up. I went to try to contact the developer but was directed to use a support forum - which of course did not help.So it goes witout saying - I will not be using the pro version when the free does not show up and had no real way of notifying the plugin dev - except for here.
Read all 33 reviews

Contributors & Developers

“Advanced Sidebar Menu” is open source software. The following people have contributed to this plugin.


“Advanced Sidebar Menu” has been translated into 8 locales. Thank you to the translators for their contributions.

Translate “Advanced Sidebar Menu” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Introduced advanced-sidebar-menu/menus/category/top-level-term-ids filter.
  • Supported PRO version 8.9.2.


  • Fixed widget id generation with block based widgets.
  • Introduced advanced-sidebar-menu/core/include-template-parts-comments filter.
  • Organized the Menu_Abtract class constants.
  • Tested to WordPress Core 6.0.1.


  • Introduced advanced-sidebar-menu/menus/page/is-excluded filter.
  • Introduced advanced-sidebar-menu/menus/category/is-excluded filter.
  • Tested to WordPress Core 6.0.0.
  • Required PRO version 8.7.0+.


  • Implement universal ‘menu-item’ style CSS classes to all menus.
  • Introduced Category::is_current_top_level_term method.
  • Introduced Category::get_current_ancestors method.
  • Introduced Category::is_current_term method.
  • Enabled PHPCS caching.
  • Required WordPress core version 5.4.0+.
  • Tested to WordPress 5.9.3.


  • Include WP core version in debug info.
  • Tested to WordPress 5.9.2.


  • Improved position of close icon in widget previews.
  • Improved plugin links utm structure.
  • Added a “Go PRO” action to the plugins list.
  • Prevented overrides of non-public post types during debugging.


  • Fine tune widgets styles for WordPress 5.9.
  • Tested to WordPress 5.9.


  • Use Webp extension for preview images.
  • Simplify the Widget names.
  • Introduce Utils::array_map_recursive method for deep sanitization.
  • Support multidimensional arrays in debug overrides.
  • Tested to WordPress 5.8.3.
  • Required PRO version 8.5.0+.


  • Introduced advanced-sidebar-menu/debug/print-instance filter.
  • Improved FAQ information.
  • Remove dangling reference to old built in styles from FAQ.


  • Fix issue with CSS classnames on the current page’s children.


  • Assured consistency for levels of page menu’s CSS classes.
  • Converted category get the highest parent logic to get_ancestors.
  • Gracefully handle invalid taxonomies in Category widgets.
  • Gracefully handle widgets without ids.
  • Fixed color pickers in Elementor.
  • Fixed color pickers in Beaver Builder.


  • Improved widget interaction handling.
  • Synced styles between block, classic and customizer widgets.
  • Fixed customizer widget buttons.


  • Support WordPress version 5.8.
  • Support Gutenberg widgets screen.
  • Minimum required version for PRO 8.5.


  • Introduce Utils class for shared non specific functionality.
  • Introduce is_checked method for determining checkbox state from anywhere.
  • Make Widget_Abstract::set_instance public for external use.
  • Complete preparations for PRO version 8.4.
  • Minimum required version for PRO 8.4.


  • Introduce new Category Walker to increase extensibility.
  • Support data-level on all widgets.


  • Support widget fields with array values.


  • Introduce data-level on all page menu levels for specific targeting.
  • Tested to WordPress 5.7.2.


  • Fully compatible with PHP8.
  • Tested to WordPress 5.7.1.


  • Add readme for translations.
  • Tested to WordPress 5.7.
  • Require WordPress core 5.2+.
  • Improved PHPCS configuration.


  • Improved plugin headers.
  • Added translations for French (fr_FR).
  • Added translations for Spanish (es_ES).
  • Expose Category::is_tax method for public filters.
  • Improved type casting and PHPStan static type checking.
  • Fix tense in readme.txt words.


  • Improved widget labels, descriptions and styles.
  • Support blocked styling borders on all levels.
  • Improved Beaver Builder and Elementor styles.
  • Improved info panel.


  • Improved readme.
  • Tested to WordPress 5.6.0.


  • Restructure widget info panels.
  • Introduced new advanced-sidebar-menu/widget/page/before-columns action.
  • Introduced new advanced-sidebar-menu/widget/category/before-columns action.
  • Improved PHPCS exclusion declarations.
  • Improved CSS structure.
  • Improved JavaScript structure.


  • Improved styles when used with Beaver Builder.
  • Require WordPress version 5.0.0+.


  • Allow List_Pages::get_args() to be filtered on any level.
  • Make debugging functionality more stable.


  • Introduced new advanced-sidebar-menu/menus/category/get-child-terms filter
  • Support filtering the first level of categories.
  • Use is_excluded vs is_first_level_category in category view.


Major version update. See migration guide if you are extending the plugin’s functionality via action, filters, or calling plugin classes.

  • Entirely new code structure.
  • Removed all deprecated code and filters.
  • Improved filter and action names.
  • Improved performance.
  • Remove default plugin styling.


  • Fix widget info pane links.
  • Fix widget editing on mobile devices.
  • Tested up to PHP 7.4
  • Tested up to WordPress Core version 5.4.1


  • Tested to 5.3.3.
  • Change default “levels to display” to All.
  • Fix notice level errors when retrieving current page.


  • Enable accordion previews when editing via Beaver Builder.
  • Greatly improved widget styles and UI when using Elementor.
  • Overall third party page builder improvements.
  • Move scripts and styles into new Scripts class.
  • Introduced a Singleton trait.


  • Elementor support for multiple widgets of the same type on the same page.
  • Automatically increment widget ids under any cases where they would duplicate.
  • Bump required WordPress Core version to 4.8.0.


  • Convert “Always display child pages” to use our List_Pages structure and support all widget options.
  • Bump required PHP version to 5.4.4.