Dynamic menus: Add a page to your menu and then let WordPress automatically add the child pages.
The default custom menu in WordPress only allows checking the “Automatically add new top-level pages” (Appearance > Menus) or adding a Navigation block with all pages and all child pages (Appearance > Editor).
With Auto Submenu you get extra functionality to automatically include child pages into the menu.
NEW: ASM now provides support for the Customizer via Appearance > Customize
NEW: ASM now provides support for Full Site Editing with the Gutenberg Block Editor via Appearance > Editor
Enable the plugin and go to Appearance > Editor.
For each Page in your menu, you now have the following extra configuration options:
Via Appearance > Menus and Appearance > Customize you also get the following option:
With the Free version you cannot control the nesting depth of the child pages, all subpages are added, regardless the depth of the page tree.
You can control the title of the menu items generated by the plug-in with the following wildcards:
Go to Appearance > Menu to automatically add top level and all its child pages to the menu when publishing a page.
Go to Appearance > Customize to automatically add top level and all its child pages to the menu when publishing a page.
Go to Appearance > Editor to enable/disable and set the options for adding child pages to each top level page in your menu.
Here’s a walkthrough:
If you now look at your website, “Page 1” has a submenu with “Child Page 1” below it. Add additional child page and you will automatically see these additional child pages in the menu.
The CSS class ‘current-post-ancestor’ is not applied correctly. This is a bug in WordPress that I have reported here: https://core.trac.wordpress.org/ticket/32918 This is not something I am able to fix in the plugin, it has to be fixed in WordPress. I’m sorry for the inconvenience.
The plugin is potentially very expensive, especially when you have a lot of pages and child pages.
The solution would be to cache the menu using transients, as reported here https://wordpress.org/support/topic/performance-problem-many-database-queries?replies=11#post-7829450
$my_cached_menu = get_transient( ‘my_cached_menu’);
if( $my_cached_menu === false )
{
$my_cached_menu = wp_nav_menu( … );
set_transient( “my_cached_menu_”, $my_cached_menu, YEAR_IN_SECONDS );
}
echo $my_cached_menu;
Problem: “I can’t see what effect it has had. Nothing has changed (not that I can see) in the Appearance > Menu/Customize/Editor pages. It’s just like before.”
If you are using a recent version of Auto Submenu and an updated version of WordPress, the problem can only occur due to your theme or other plugins conflicting with Auto Submenu. Please disable all themes and plugins except ASM; verify that the ASM fields show; enable other plugins and themes one by one to determine which plugin/theme conflicts with ASM.
Note: A theme must either call wp_nav_menu() or apply_filters( ‘wp_nav_menu_objects’, … ) for ASM to be triggered.
Automatically adding future dated child pages doesn’t work due to what appears to be a bug in the WordPress core. Future dated top-level pages don’t seem to get added to custom menus either.
Bugfix: Plugin moved page to the bottom of the submenu.
Now provides support editing via the Customizer.
Now provides support for Full Site Editing with the Gutenberg Block Editor.
Plugin has been split into a Free and a Premium version. The Free version functionality is unchanged. Premium version has extended functionality.