From a86a9f671da912c857dc27478f073d154a2368d9 Mon Sep 17 00:00:00 2001 From: Andrew Nacin Date: Sat, 31 Aug 2013 01:36:49 +0000 Subject: [PATCH] Nav menus: Allow assigning a new menu to an existing location when no theme setting is currently saved. props ocean90. see #25064, for trunk. git-svn-id: https://develop.svn.wordpress.org/trunk@25195 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/nav-menus.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/wp-admin/nav-menus.php b/src/wp-admin/nav-menus.php index d012487806..34a2f0f997 100644 --- a/src/wp-admin/nav-menus.php +++ b/src/wp-admin/nav-menus.php @@ -300,18 +300,19 @@ switch ( $action ) { // If there are menu items, add them wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ); // Auto-save nav_menu_locations - $locations = get_theme_mod( 'nav_menu_locations' ); - foreach ( (array) $locations as $location => $menu_id ) { + $locations = get_nav_menu_locations(); + foreach ( $locations as $location => $menu_id ) { $locations[ $location ] = $nav_menu_selected_id; break; // There should only be 1 } set_theme_mod( 'nav_menu_locations', $locations ); } if ( isset( $_REQUEST['use-location'] ) ) { - $locations = get_theme_mod( 'nav_menu_locations' ); - if ( isset( $locations[$_REQUEST['use-location']] ) ) - $locations[$_REQUEST['use-location']] = $nav_menu_selected_id; - set_theme_mod( 'nav_menu_locations', $locations ); + $locations = get_registered_nav_menus(); + $menu_locations = get_nav_menu_locations(); + if ( isset( $locations[ $_REQUEST['use-location'] ] ) ) + $menu_locations[ $_REQUEST['use-location'] ] = $nav_menu_selected_id; + set_theme_mod( 'nav_menu_locations', $menu_locations ); } // $messages[] = '

' . sprintf( __( '%s has been created.' ), $nav_menu_selected_title ) . '

'; wp_redirect( admin_url( 'nav-menus.php?menu=' . $_nav_menu_selected_id ) );