Theme’s wp_nav_menu call does not use the theme_location parameter


The wp_nav_menu() call in the theme MUST use the theme_location parameter for UberMenu to be applied to that menu.


The WordPress 3 menu system allows a theme to register theme locations, which allow users to associate a particular menu to be printed at a particular point within a site layout. When the wp_nav_menu call is made within the theme template, the theme_location parameter must be used. This is the only way that UberMenu can target a particular menu – by the theme_location parameter.

The Problem

Some themes do not use the best practice of registering and using theme locations (this is important for theme flexibility). Without a theme_location, UberMenu can’t target that menu. Proper use of the theme_location parameter is a requirement.

Some themes even register a theme location (which means it will display in the Appearance > Menus > Manage Locations screen), but don’t actually use it in the wp_nav_menu function call – in which case the registered theme location is completely irrelevant.

Identifying the issue

You’ll need to find the wp_nav_menu function call and check the parameters that are being passed to it. This function is called in the header.php under normal circumstances, but you may need to do a global search on your theme files to locate it. If the wp_nav_menu call is not passed a theme_location parameter, you’ve identified the issue.

The solution

You can register your own theme location and pass the parameter properly, or find a theme that properly implements WordPress 3 menus – but the simplest solution is generally just to replace the theme’s wp_nav_menu call with Manual Integration (Easy Integration if you are using UberMenu 2).