WordPress.org

Make WordPress Core

Changeset 14611


Ignore:
Timestamp:
05/13/10 22:14:54 (4 years ago)
Author:
wpmuguru
Message:

add menu slots/theme_menus, props ryan, see #13378

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/nav-menus.php

    r14601 r14611  
    483483                                    <br class="clear" /> 
    484484                                </label> 
    485  
     485                                <?php if ( ! empty( $nav_menu_selected_id ) && $slots = get_registered_nav_menus() ) : ?> 
     486                                <label class="menu-name-label howto open-label" for="menu-slot"> 
     487                                    <span><?php _e('Theme Menu'); ?></span> 
     488                                    <select id="menu-slot" name="menu-slot"> 
     489                                    <?php foreach ( $slots as $slot_key => $slot_text ) { 
     490                                        echo '<option value="' . esc_attr($slot_key) . '">' . esc_html($slot_text) . '</option>'; 
     491                                    } 
     492                                    ?> 
     493                                    </select> 
     494                                    <br class="clear" /> 
     495                                </label> 
     496                                <?php endif; ?> 
    486497                                <div class="publishing-action"> 
    487498                                    <input class="button-primary" name="save_menu" type="submit" value="<?php empty($nav_menu_selected_id) ? esc_attr_e('Create Menu') : esc_attr_e('Save Menu'); ?>" /> 
  • trunk/wp-content/themes/twentyten/functions.php

    r14552 r14611  
    8181 
    8282    // This theme uses wp_nav_menu() 
    83     add_theme_support( 'nav-menus' ); 
     83    register_nav_menus( array('main' => __('Main Menu')) ); 
    8484 
    8585    // Add default posts and comments RSS feed links to head 
  • trunk/wp-content/themes/twentyten/header.php

    r14549 r14611  
    7070            <div id="access" role="navigation"> 
    7171                <div class="skip-link screen-reader-text"><a href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentyten' ); ?>"><?php _e( 'Skip to content', 'twentyten' ); ?></a></div> 
    72                 <?php wp_nav_menu( array( 'sort_column' => 'menu_order', 'container_class' => 'menu-header' ) ); ?> 
     72                <?php wp_nav_menu( array( 'sort_column' => 'menu_order', 'container_class' => 'menu-header', 'theme_menu' => 'main' ) ); ?> 
    7373            </div><!-- #access --> 
    7474        </div><!-- #masthead --> 
  • trunk/wp-includes/nav-menu-template.php

    r14605 r14611  
    194194    $defaults = array( 'menu' => '', 'container' => 'div', 'container_class' => '', 'menu_class' => 'menu', 'echo' => true, 
    195195    'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 
    196     'depth' => 0, 'walker' => '', 'context' => 'frontend' ); 
     196    'depth' => 0, 'walker' => '', 'context' => 'frontend', 'theme_menu' => '' ); 
    197197 
    198198    $args = wp_parse_args( $args, $defaults ); 
     
    202202    // Get the nav menu 
    203203    $menu = wp_get_nav_menu_object( $args->menu ); 
     204 
     205    if ( ! $menu && $slot ) { 
     206        $slots = get_nav_menu_slots(); 
     207        if ( isset($slots) && isset($slots['theme_menu']) ) 
     208            $menu = wp_get_nav_menu_object( $slots['theme_menu'] ); 
     209    } 
    204210 
    205211    // If we couldn't find a menu based off the menu argument  
  • trunk/wp-includes/nav-menu.php

    r14599 r14611  
    6060 
    6161    return false; 
     62} 
     63 
     64/** 
     65 * Register nav menus for a theme. 
     66 * 
     67 * @since 3.0.0 
     68 * 
     69 * @param array Associative array of menu slot identifiers and descriptions. 
     70 */ 
     71function register_nav_menus( $menus = array() ) { 
     72    global $_wp_registered_nav_menus; 
     73 
     74    add_theme_support( 'nav-menus' ); 
     75 
     76    $_wp_registered_nav_menus = $menus; 
     77} 
     78 
     79function get_registered_nav_menus() { 
     80    global $_wp_registered_nav_menus; 
     81 
     82    return $_wp_registered_nav_menus; 
     83} 
     84 
     85function get_nav_menu_slots() { 
     86    return get_theme_mod('nav_menu_slots'); 
    6287} 
    6388 
Note: See TracChangeset for help on using the changeset viewer.