Fix notices inside wp_nav_menu(), Ensure echo => false is passed to fallback callbacks so the function doesnt print HTML directly. See #11817
git-svn-id: https://develop.svn.wordpress.org/trunk@13532 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
97bd9628d7
commit
fcf2d321ab
@ -45,11 +45,16 @@ function wp_nav_menu( $args = array() ) {
|
||||
}
|
||||
}
|
||||
|
||||
if ( $menu )
|
||||
$args->menu = $menu->term_id;
|
||||
$nav_menu = '';
|
||||
|
||||
if ( 'div' == $args->format )
|
||||
$nav_menu .= '<div id="menu-'. $menu->slug .'" class="' . esc_attr($args->menu_class) . '">';
|
||||
if ( 'div' == $args->format ) {
|
||||
if ( $menu )
|
||||
$nav_menu .= '<div id="menu-' . $menu->slug . '" class="' . esc_attr($args->menu_class) . '">';
|
||||
else
|
||||
$nav_menu .= '<div id="menu-default">';
|
||||
}
|
||||
|
||||
$nav_menu .= wp_get_nav_menu( $args );
|
||||
|
||||
@ -58,7 +63,10 @@ function wp_nav_menu( $args = array() ) {
|
||||
|
||||
$nav_menu = apply_filters( 'wp_nav_menu', $nav_menu );
|
||||
|
||||
return $args->echo ? print $nav_menu : $nav_menu;
|
||||
if ( $args->echo )
|
||||
echo $nav_menu;
|
||||
else
|
||||
return $nav_menu;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -83,8 +91,10 @@ function wp_get_nav_menu( $args = array() ) {
|
||||
|
||||
// If no menu was found, call the fallback_cb
|
||||
if ( !$menu || is_wp_error($menu) ) {
|
||||
if ( function_exists($args->fallback_cb) )
|
||||
return call_user_func( $args->fallback_cb, $args );
|
||||
if ( function_exists($args->fallback_cb) ) {
|
||||
$_args = array_merge( (array)$args, array('echo' => false) );
|
||||
return call_user_func( $args->fallback_cb, $_args );
|
||||
}
|
||||
}
|
||||
|
||||
$menu_items = wp_get_nav_menu_items( $menu->term_id );
|
||||
|
Loading…
Reference in New Issue
Block a user