WordPress.org

Make WordPress Core

Changeset 13532


Ignore:
Timestamp:
03/01/10 12:53:51 (4 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.