If a nav menu has no menu items, print nothing (instead of empty container markup). props obenland. fixes #21576.
git-svn-id: http://core.svn.wordpress.org/trunk@21868 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
a2b71e7fae
commit
a269ba85f7
|
@ -166,13 +166,19 @@ function wp_nav_menu( $args = array() ) {
|
|||
if ( $menu && ! is_wp_error($menu) && !isset($menu_items) )
|
||||
$menu_items = wp_get_nav_menu_items( $menu->term_id );
|
||||
|
||||
// If no menu was found or if the menu has no items and no location was requested, call the fallback_cb if it exists
|
||||
/*
|
||||
* If no menu was found:
|
||||
* - Fallback (if one was specified), or bail.
|
||||
*
|
||||
* If no menu items were found:
|
||||
* - Fallback, but only if no theme location was specified.
|
||||
* - Otherwise, bail.
|
||||
*/
|
||||
if ( ( !$menu || is_wp_error($menu) || ( isset($menu_items) && empty($menu_items) && !$args->theme_location ) )
|
||||
&& $args->fallback_cb && is_callable( $args->fallback_cb ) )
|
||||
return call_user_func( $args->fallback_cb, (array) $args );
|
||||
|
||||
// If no fallback function was specified and the menu doesn't exists, bail.
|
||||
if ( !$menu || is_wp_error($menu) )
|
||||
if ( !$menu || is_wp_error( $menu ) || empty( $menu_items ) )
|
||||
return false;
|
||||
|
||||
$nav_menu = $items = '';
|
||||
|
|
Loading…
Reference in New Issue