Make WordPress Core

Changeset 13532


Ignore:
Timestamp:
03/01/2010 12:53:51 PM (15 years ago)
Author:
dd32
Message:

Fix notices inside wp_nav_menu(), Ensure echo => false is passed to fallback callbacks so the function doesnt print HTML directly. See #11817

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/nav-menu-template.php

    r13512 r13532  
    3030    $args = apply_filters( 'wp_nav_menu_args', $args );
    3131    $args = (object) $args;
    32    
     32
    3333    // Get the nav menu
    3434    $menu = wp_get_nav_menu_object( $args->menu );
     
    4545        }
    4646    }
    47    
    48     $args->menu = $menu->term_id;
     47
     48    if ( $menu )
     49        $args->menu = $menu->term_id;
    4950    $nav_menu = '';
    50    
    51     if ( 'div' == $args->format )
    52         $nav_menu .= '<div id="menu-'. $menu->slug .'" class="' . esc_attr($args->menu_class) . '">';
    53    
     51
     52    if ( 'div' == $args->format ) {
     53        if ( $menu )
     54            $nav_menu .= '<div id="menu-' . $menu->slug . '" class="' . esc_attr($args->menu_class) . '">';
     55        else
     56            $nav_menu .= '<div id="menu-default">';
     57    }
     58
    5459    $nav_menu .= wp_get_nav_menu( $args );
    55    
     60
    5661    if ( 'div' == $args->format )
    5762        $nav_menu .= '</div>';
    58    
     63
    5964    $nav_menu = apply_filters( 'wp_nav_menu', $nav_menu );
    60    
    61     return $args->echo ? print $nav_menu : $nav_menu;
     65
     66    if ( $args->echo )
     67        echo $nav_menu;
     68    else
     69        return $nav_menu;
    6270}
    6371
     
    8492    // If no menu was found, call the fallback_cb
    8593    if ( !$menu || is_wp_error($menu) ) {
    86         if ( function_exists($args->fallback_cb) )
    87             return call_user_func( $args->fallback_cb, $args );
     94        if ( function_exists($args->fallback_cb) ) {
     95            $_args = array_merge( (array)$args, array('echo' => false) );
     96            return call_user_func( $args->fallback_cb, $_args );
     97        }
    8898    }
    8999   
Note: See TracChangeset for help on using the changeset viewer.