WordPress.org

Make WordPress Core


Ignore:
Timestamp:
02/24/2010 08:45:26 AM (11 years ago)
Author:
ryan
Message:

Fallback to wp_page_menu() from wp_nav_menu() if no menus are setup. Use wp_nav_menu() in twentyten. see #11817

File:
1 edited

Legend:

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

    r13366 r13368  
    99 */
    1010function wp_nav_menu( $args = array() ) {
     11    $defaults = array('id' => '', 'slug' => '', 'menu_class' => 'menu', 'format' => 'div');
     12    $args = wp_parse_args($args, $defaults);
     13    $args = (object) $args;
     14
     15    $menu = null;
     16    if ( !empty($args->id) ) {
     17        $menu = wp_get_nav_menu( $args->id );
     18    } elseif ( !empty($args->slug) ) {
     19        $menu = get_term_by('slug', $args->slug, 'nav_menu');
     20    } else {
     21        $menus = wp_get_nav_menus();
     22        foreach ( $menus as $menu_maybe ) {
     23            if ( wp_get_nav_menu_items($menu_maybe->term_id) ) {
     24                $menu = $menu_maybe;
     25                break;
     26            }
     27        }
     28    }
     29
     30    if ( !$menu || is_wp_error($menu) )
     31        return wp_page_menu( $args );
     32
     33    if ( 'div' == $args->format )
     34        echo '<div class="' . esc_attr($args->menu_class) . '"><ul>';
     35
     36    $args->id = $menu->term_id;
     37
    1138    wp_print_nav_menu($args);
     39       
     40    if ( 'div' == $args->format )
     41        echo '</ul></div>';
    1242}
    1343
Note: See TracChangeset for help on using the changeset viewer.