Make WordPress Core


Ignore:
Timestamp:
05/24/2010 09:23:56 AM (16 years ago)
Author:
nacin
Message:

Menu tweaks. Save menu locations when saving the menu. Also, centralize theme support checks and add them to menu.php. Improve some branching. Remove some old JS vars, add a missing semicolon, etc. props koopersmith. see #13378.

File:
1 edited

Legend:

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

    r14761 r14831  
    1515// Load all the nav menu interface functions
    1616require_once( ABSPATH . 'wp-admin/includes/nav-menu.php' );
     17
     18if ( ! current_theme_supports( 'nav-menus' ) && ! current_theme_supports( 'widgets' ) )
     19        wp_die( __( 'Your theme does not support navigation menus or widgets.' ) );
    1720
    1821// Permissions Check
    … …  
    271274                check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
    272275
     276                // Update menu theme locations
     277                set_theme_mod( 'nav_menu_locations', $_POST['menu-locations'] );
     278
    273279                // Add Menu
    274280                if ( 0 == $nav_menu_selected_id ) {
    275                         if ( current_theme_supports('nav-menus') || current_theme_supports('widgets') ) {
    276                                 $new_menu_title = esc_html( $_POST['menu-name'] );
    277 
    278                                 if ( $new_menu_title ) {
    279                                         $_nav_menu_selected_id = wp_update_nav_menu_object( 0, array('menu-name' => $new_menu_title) );
    280 
    281                                         if ( is_wp_error( $_nav_menu_selected_id ) ) {
    282                                                 $messages[] = '<div id="message" class="error"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>';
    283                                         } else {
    284                                                 if ( ( $_menu_locations = get_registered_nav_menus() ) && 1 == count( wp_get_nav_menus() ) )
    285                                                         set_theme_mod( 'nav_menu_locations', array( key( $_menu_locations ) => $_nav_menu_selected_id ) );
    286                                                 unset( $_menu_locations );
    287                                                 $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id );
    288                                                 $nav_menu_selected_id = $_nav_menu_selected_id;
    289                                                 $nav_menu_selected_title = $_menu_object->name;
    290                                                 $messages[] = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been successfully created.'), $nav_menu_selected_title ) . '</p></div>';
    291                                         }
     281                        $new_menu_title = esc_html( $_POST['menu-name'] );
     282
     283                        if ( $new_menu_title ) {
     284                                $_nav_menu_selected_id = wp_update_nav_menu_object( 0, array('menu-name' => $new_menu_title) );
     285
     286                                if ( is_wp_error( $_nav_menu_selected_id ) ) {
     287                                        $messages[] = '<div id="message" class="error"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>';
    292288                                } else {
    293                                         $messages[] = '<div id="message" class="error"><p>' . __('Please enter a valid menu name.') . '</p></div>';
    294                                 }
     289                                        if ( ( $_menu_locations = get_registered_nav_menus() ) && 1 == count( wp_get_nav_menus() ) )
     290                                                set_theme_mod( 'nav_menu_locations', array( key( $_menu_locations ) => $_nav_menu_selected_id ) );
     291                                        unset( $_menu_locations );
     292                                        $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id );
     293                                        $nav_menu_selected_id = $_nav_menu_selected_id;
     294                                        $nav_menu_selected_title = $_menu_object->name;
     295                                        $messages[] = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been successfully created.'), $nav_menu_selected_title ) . '</p></div>';
     296                                }
     297                        } else {
     298                                $messages[] = '<div id="message" class="error"><p>' . __('Please enter a valid menu name.') . '</p></div>';
    295299                        }
    296300
    … …  
    426430        endforeach;
    427431        ?>
    428 
    429         <?php if ( current_theme_supports('nav-menus') || current_theme_supports('widgets') ) : ?>
    430432        <div id="nav-menus-frame">
    431433        <div id="menu-settings-column" class="metabox-holder">
    … …  
    518520                                        <div id="post-body">
    519521                                                <div id="post-body-content">
    520                                                         <?php if ( is_nav_menu( $nav_menu_selected_id ) && ( current_theme_supports('nav-menus') || current_theme_supports('widgets') ) ) : ?>
     522                                                        <?php if ( is_nav_menu( $nav_menu_selected_id ) ) : ?>
    521523                                                                <ul class="menu" id="menu-to-edit">
    522524                                                                <?php
    … …  
    543545        </div><!-- /#menu-management-liquid -->
    544546        </div><!-- /#nav-menus-frame-->
    545         <?php endif; // if menus supported in current theme ?>
    546547</div><!-- /.wrap-->
    547548
Note: See TracChangeset for help on using the changeset viewer.