WordPress.org

Make WordPress Core

Changeset 14611


Ignore:
Timestamp:
05/13/2010 10:14:54 PM (8 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.