Ready to get started?Download WordPress

Plugin Directory

Custom Menu Wizard Widget

Show branches or levels of your menu in a widget, or in content using a shortcode, with full customisation.


  • bugfix : prevent PHP warnings of Undefined index/offset


  • bugfix : clearing the container field failed to remove the container from the output

  • addition : in the "assist", added automatic selection of the shortcode text when it is clicked

  • addition : remove WordPress's menu-item-has-children class (introduced in v3.7) when the filtered item no longer has children

  • change : tweaked styles and javascript in admin for WordPress v3.8


  • bugfix : missing global when enqueuing scripts and styles for admin


  • bugfix : the Include Ancestors option was not automatically including the Parent

  • bugfix : the "assist" was incorrectly calculating Depth Relative to Current Item when the current menu item was outside the scope of the Filtered items

  • behaviour change : only recognise the first "current" item found (used to allow subsequent "current" items to override any already encountered)


  • bugfix : an incorrect test for a specific-items filter prevented show-all producing any output


  • ! Possible Breaker ! The calculation of Start Level has been made consistent across the Show all and Children of filters : if you previously had a setup where you were filtering for the children of an item at level 2, with start level set to 4, there would have been no output because the immediate children (at level 3) were outside the start level. Now, there will be output, starting with the grand-children (at level 4).

  • ! Possible Breaker ! There is now deemed to be an artificial "root" item above the level 1 items, which mean that a Children of filter set to "Current Parent Item" or "Current Root Item" will no longer fail for a top-level "current menu item". If you have the "no ancestor" fallback set then this change will have no impact (but you may now want to consider turning the fallback off?); if you don't currently use the "no ancestor" fallback, then where there was previously no output there will now be some!

  • added new option : Items, a comma- or space-delimited list of menu item ids, as an alternative Filter

  • added new option : Depth Relative to Current Item to the Filter section (depth_rel_current=1 in the shortcode)

  • added new option : Must Contain Current Item to the Output section (contains_current=1 in the shortcode)

  • changed the widget's "demo" facility to "assist" and brought it into WordPress admin, with full interactivity with the widget

  • refactored code


  • bugfix : fallback for Current Item with no children was failing because the parent's children weren't being picked out correctly


  • added some extra custom classes, when applicable : cmw-fellback-to-current & cmw-fellback-to-parent (on outer UL/OL) and cmw-the-included-parent, cmw-an-included-parent-sibling & cmw-an-included-ancestor (on relevant LIs)

  • corrected 'show all from start level 1' processing so that custom classes get applied and 'Title from "Current" Item' works (regardless of filter settings)

  • changed the defaults for new widgets such that only the Filter section is open by default; all the others are collapsed

  • in demo.html, added output of the shortcode applicable to the selections made

  • in demo.html, added a link to the documentation page

  • corrected 2 of the shortcode examples in the readme.txt, and made emulator (demo) available from the readme


  • added custom_menu_wizard shortcode, to run the widget from within content

  • moved the 'no ancestor' fallback into new Fallback collapsible section, and added a fallback for Current Item with no children

  • added an option allowing setting of title from current menu item's title

  • fixed a bug with optgroups/options made available for the 'Children of' selector after the widget has been saved (also affected disabled fields and styling)

  • don't include menus with no items

  • updated demo.html


  • added 'Current Root Item' and 'Current Parent Item' to the Children of filter

  • added Fallback to Current Item option, with subsidiary options for overriding a couple of Output options, as a means to enable Current Root & Current Parent to match a Current Item at root level

  • added an Output option to include both the parent item and the parent's siblings (for a successful Children of filter)

  • added max-width style (100%) to the Children of SELECT in the widget options

  • added widget version to the admin js enqueuer

  • ignore/disable Hide Empty option for WP >= v3.6 (wp_nav_menu() now does it automatically)

  • included a stand-alone helper/demo html page

  • rebuilt the Children of SELECT in the widget options to cope with IE's lack of OPTGROUP/OPTION styling

  • moved the setting of 'disabled' attributes on INPUTs/SELECTs from PHP into javascript


Initial release

Requires: 3.0.1 or higher
Compatible up to: 3.8.3
Last Updated: 2014-1-8
Downloads: 45,048


5 stars
5 out of 5 stars


5 of 10 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

0,1,0 50,2,1 100,2,2 100,1,1