Advanced Sidebar Menu
Advanced Sidebar Menu
Description
Fully automatic sidebar menus.
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 Advanced Sidebar Menu 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.
Blocks are available to display menus where you need them. Look for the “Advanced Sidebar – Pages” block, or the “Advanced Sidebar – Categories” block. Widgets are also available for page builders or sites using classic widgets.
Developed and Supported by OnPoint Plugins.
Documentation
The official documentation for the plugin may be found here.
Demo
An interactive demonstration of the generated menu structure may be found here.
You may also use the Live Preview to use a playground site to test the plugin.
How It Works
When your users view a page or category, the Advanced Sidebar Menu plugin will calculate the related content based on what you have selected using the standard WordPress parent selectors.
The menu will be different for every page that displays the Advanced Sidebar Blocks because the menu is generated specifically to the current page.
Depending on “Pages” block options, the menu will display:
- The current page.
- Parent page.
- Child pages.
- Grandparent pages.
- Grandchild pages.
- First level child pages related to the current item.
Depending on “Categories” block options, the menu will display:
- The current category.
- Parent category.
- Child categories.
- Grandparent categories.
- Grandchild categories.
- First level child categories related to the current item.
Menu Locations
Blocks may be added to:
- Page/post content.
- Widget areas.
- Theme customizer.
- Site Editor.
- Really anywhere blocks are supported.
Classic widgets are also available for areas like:
- Elementor.
- Beaver Builder.
- Sites that have classic widgets enabled.
Features
- Page and Category menu Gutenberg blocks.
- Page and Category menu 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/block or in same list.
Page Menu Options
- 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.
- Levels of child pages to display when always display child pages is checked.
Category Menu Options
- 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/block or in same list.
- Exclude categories.
- Always display child categories.
- Levels of Categories to display when always display child categories is checked.
Included Language Translations
- English (en_US).
- French (fr_FR).
- German (de_DE).
- Spanish (es_ES).
Developers
Developer docs may be found here.
Contribute
Send pull requests via GitHub Repo
Go PRO
Our PRO version brings additional functionality to this plugin. Check out the demo to see if the PRO version is useful for you.
- Navigation menu widget.
- Navigation menu Gutenberg block.
- Ability to customize each page or navigation menu item link’s text.
- Click-and-drag styling for page, category, and navigation menus.
- 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.
- Ability to exclude a page from all menus using a simple checkbox.
- Link ordering for the category menus.
- 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.
- Ability to display category post counts.
- Exclude pages or categories using intuitive search and select. NEW
- 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 menu 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.
Installation
Use the standard WordPress plugins search and install.
Manual Installation
- Upload the
advanced-sidebar-menufolder to the/wp-content/plugins/directory - Activate the plugin through the ‘Plugins’ menu in WordPress
- Drag the “Advanced Sidebar – Pages” widget, or the “Advanced Sidebar – Categories” widget into a sidebar.
- Use the block inserter to insert the “Advanced Sidebar – Pages” block, or the “Advanced Sidebar – Categories” block into Gutenberg content.
Screenshots
Faq
The menu in this plugin is 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 menu 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 menu was selected. Categories have their own widget/block as pages have their own widget/block.
2. “Display the highest level parent page” or “Display the highest level parent category” is not checked.
3. The Pages menu is currently not being viewed on a page.
4. The Categories menu is not currently being view on a category.
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.
The Categories Menu widget/block contains a “Display categories on single posts” checkbox, which will display the category menus based on the categories the current post is assigned to.
Yes. Based on whatever page post or category you are on, the menu will change automatically to display the current parents and children.
Reviews
Really useful product
By tomsugar1 on September 18, 2024
I downloaded and installed it , and while there wasn't an option of floating icons I wanted, it got the job done
Pro version is a disaster
By WillOfTheWeb on March 15, 2024
The pro version of this plugin is a disaster. As soon as you activate it, it renders your menu items invisible. Also to get the full benefit of it you have to install the Classic Sidebar plugin as the block version is terrible.
Doesn't work
By omigosh on July 20, 2023
I'd love to have a plugin like this but I can't make it work. Best I can do is make a list of categories, but I can't get it to list individual posts within a category. Tried everything. Nothing works. Not even sure if it's supposed to display individual posts in a category. There's no information in what might be laughlingly called 'Documentation'. I spent a large chunk of my day trying to make this thing work and it simply does not work.
great plugin !
By EleanorR Greenawalt (eleanorrgreenawalt) on September 10, 2022
Very helpful and well written plugin - Support is above & beyond expecations
By deeholzman on May 4, 2022
Not working
By zihniates on November 19, 2021
Does what it says it does
By (firefly2000) on October 30, 2021
Brilliant
By nickshepherd on May 7, 2021
lost the indentation
By lordeleo on July 28, 2020
Not sowing up
By neddyrich1 on July 1, 2019
Changelog
9.8.2
- Fixed the display of the “Show on single posts” option in category blocks.
9.8.1
- Introduced ‘advanced-sidebar-menu/pages/general-after’ slot fill.
- Updated expired @todos in PHP docs.
9.8.0
- Updated Node.js to version 22.21.1.
- Killed the JS block attribute handler.
- Updated ESLint rules to version 5 and fixed all suggestions.
- Combined WidgetWithId into the Widget interface.
- Required PRO version 9.9.0+.
- Tested to WordPress Core 6.8.3.
9.7.1
- Established a migration plan for removing the
WidgetWithIdinterface. - Improved GitHub Actions workflows security.
- Updated node packages to resolve vulnerabilities.
- Tested to WordPress Core 6.8.2.
9.7.0
- Added new individual block icons.
- Reduced block registration attribute size.
- Introduced new
Attributeclass for block attributes. - Required PRO version 9.7.2+.
- Officially added support for PHP 8.4.
- Tested to WordPress Core 6.8.1.
9.6.5
- Added PHP 8.4 to linting.
- Required the PRO version 9.6.1+.
- Tested to WordPress core 6.8.0.
9.6.4
- Improved labels and positions in block settings.
- Added original plugin author to the readme.
- Updated dompurify to version 3.2.4 to resolve dependency vulnerabilities.
- Improved
Core::get_template_partto return breadcrumb through reference instead of direct echo. - Tested to WordPress Core 6.7.2.
9.6.3
- Introduced
advanced-sidebar-menu.blocks.preview.attributesfilter. - Improved security of node packages.
- Improved deployment workflow.
- Tested to WordPress Core 6.7.1.
9.6.2
- Improved block style handling during previews.
- Disabled HTML editor for blocks.
- Introduced
is_server_side_renderhelper method on block abstract. - Improved isolation of passing block attributes to widget arguments.
- Fixed double up of block shadow in previews.
- Tested to WordPress Core 6.7.0.
9.6.1
- Introduce JEST unit testings for the basic version.
- Improved the automated testing suite.
- Improved deployment workflows.
- Fixed sourcemap generation on production builds.
- Tested to WordPress Core 6.6.2.
9.6.0
- Introduced
Widget/WidgtIdandWidget/WithWidgetIdinterfaces. - Introduced
Widget/WidgetIdAccessandWidget/Checboxtraits. - Improved debug handling in the browser.
- Introduced
advancedSidebarMenuDebughelper function. - Added support for PHP based translations.
- Fixed ‘current-menu-ancestor’ CSS class on category menus.
- Dropped support for PHP 7.2 in favor of 7.4+.
- Dropped support for React 17 in favor of 18+.
- Bumped required PRO version to 9.4.0.
- Bumped minimum required WordPress version to 6.2.0.
- Tested to WordPress Core 6.6.0.
9.5.2
- Provided unique HTML ids for category widgets with multiple top level categories.
- Continued work on converting the
Menu_Abstractto an interface. - Fixed click handling of menu previews in the block editor.
- Fixed fatal error when
is_plugin_activeis not available. - Implemented PHPStan array shapes for block classes.
- Improved falsey conditions in the
Utils::is_emptymethod. - Officially added support for PHP 8.3.
- Tested to WordPress Core 6.5.3.
9.5.1
- Improved the plugin readme.
- Improved the translation headers.
- Improved the
List_Pagescache. - Added support to live previews using a playground blueprint.
- Tested to WordPress Core 6.5.0.
9.5.0
- Introduced
is_truthyutility method. - Introduced
get_post_type_labelutility method. - Introduced
is_emptyutility method. - Introduced
Menuinterface and began promotingMenu_Abstractto it. - Introduced
Utils_Interfaceto guarantee the existence of shared methods. - Included classic editor state in debug information.
- Fixed the missing dashicons shown in the Preview component inside iframes.
- Fixed PHPCS minimum_wp_version config.
- Switched widget classes to trait/interface based structure.
- Introduced full array shapes for widget settings.
- Improved default widget settings.
- Prevented conflicts with theme styles and widget fields.
- Fixed excluding of child items if the top level parent is excluded.
- Converted deprecated block registering args to WordPress 6.1 version.
9.4.3
- Updated all block’s api version to 3.
- Updated Node to version 20.
- Updated Yarn to version 4.
- Tested to WordPress Core 6.4.3.
- Required PRO version 9.2.0+.
9.4.2
- Fixed translation loading in blocks.
- Improved CSS and JS linting.
- Introduced ‘advanced-sidebar-menu/block-wrapper-attributes’ filter.
- Fully support PHP 8.2.
9.4.1
- Dropped support for PHP 7.0 in favor of 7.2.
- Bumped minimum supported WordPress version to 6.0.0.
- Improved block preview link handling.
- Required PRO version 9.1.8+.
9.3.4
- Passed block attributes and supports to JavaScript as well as PHP.
- Fixed issues with block previews in WordPress 6.4.
- Fixed issues with widget transformations in WordPress 6.4.
- Improved styles of legacy widget’s info panel.
- Updated PHPStan level to 8 and fixed all warnings.
9.3.3
- Fixed issue with blocks loading in WordPress 6.4.
- Tested to WordPress 6.4.1.
9.3.2
- Fixed deployignore configurations.
9.3.1
- Improved select input styles in widget settings.
- Introduced ‘advanced-sidebar-menu/scripts/admin-scripts’ action.
- Aligned supported browsers with WordPress core.
- Updated the Node to version 18.
- Fixed all ESLint and Stylelint notices.
- Loosely a requirement for PRO version 9.3.0.
9.3.0
- Modernized legacy widget JS and CSS into the Webpack structure.
- Reduce bundle size of admin resources.
- Renamed CSS files with the “advanced-sidebar-menu” prefix.
- Added support for collapsing info panels on page builders and theme customizers.
- Updated the block
apiVersionto “3”. - Tested to WordPress 6.3.2.
- Greatly improved widgets styles in Beaver Builder and Elementor.
9.2.1
- Introduced transform legacy widgets to blocks prompts.
- Moved configurations to the root of the plugin and general modernization.
- Made “Go PRO” callouts more tasteful and less intrusive.
- Improved styles of the info panels in widgets and blocks.
- Improved styles of buttons and fields in Beaver Builder.
- Updated WP-PHPCS to version 3 and fixed all warnings.
9.1.0
- Separated the exclude pages/categories field into a filterable component.
- Updated links to various documentation.
- Added default values to most block attributes.
- Updated block attribute TS definitions to accurately reflect default values.
- Updated TS to version 5.
- Updated PHPCS scanning to version 3 of WP PHPCS standards.
- Loosely update the minimum requirement for PRO to version 9.2.0.
9.0.11
- Changed default limit of child pages to 200 instead of 100.
- Simplified and improved the
List_Pages::parse_argsmethod. - Added links to documentation in the plugins list.
- Tested to WordPress core 6.3.1.
9.0.10
- Fixed compatibility with Jetpack widget visibility.
- Included the screen and section information in ErrorBoundary data.
- Improved static analysis testing.
- Improved unit testing for WordPress 5.8.
- Tested to WordPress core 6.3.0.
9.0.9
- Fixed conflict with Stackable WordPress plugin in the theme customizer.
- Improved block script reliability.
- Improved handling of Elementor previews.
- Improved error boundary informational messages.
- Removed conflicts with POST method requests.
9.0.8
- Disabled legacy widgets by default see docs.
- Update browser list support.
- Improved the widget/block transformation logic and types.
- Removed dangling WordPress version < 5.6 requirements.
- Tested to WordPress core 6.2.2.
9.0.7
- Fixed
data-levelon category menus larger than 3 levels. - Included classic widgets flag in debug information.
- Required PRO version 9.1.2+.
9.0.6
- Improved extendability by removing all
privateaccess modifiers. - Fully support PHP 8.1.
- Tested to WordPress Core 6.2.0.
9.0.5
- Switched to static uses of class constants to improve extendability.
- Switched to full namespaced constants.
- Improved PHPCS definitions.
- Improved translations.
- Included help information for the category widget exclude settings.
9.0.4
- Added “current-menu-ancestor” CSS class to Pages and Categories menus.
- Introduced “advanced-sidebar-page” CSS class to Pages menus.
- Tested to WordPress Core 6.1.1.
9.0.3
- Fixed issue with styles not loading in Elementor.
- Tested to WordPress Core 6.0.2.
9.0.2
- Moved
advanced-sidebar-menuCSS class to block widget wraps. - Introduced
isScreenhelper to make screen conditionals cleaner. - Included “Display each single post’s categories” option on the customizer screen.
- Included PHP version in debug information.
- Improved readme.
9.0.0
- Introduced Gutenberg blocks.
- Improved translations.
- Improved Elementor support.
- Removed all deprecated functionality.
- Required PRO version 9.0.0+.
- Required WordPress Core 5.8.0+.
- Drop support for PHP 5.6 if favor of PHP 7.0+.
- Numerous bug fixes.



