From a22bb4f3ad9a1471e982a512c5fb6220127a473c Mon Sep 17 00:00:00 2001 From: Konstantin Obenland Date: Tue, 10 Oct 2017 17:06:47 +0000 Subject: [PATCH] Customizer: Account for legacy menu data Checks for menu location data from when a previewed theme was previously active. See #39692. Built from https://develop.svn.wordpress.org/trunk@41810 git-svn-id: http://core.svn.wordpress.org/trunk@41644 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/class-wp-customize-nav-menus.php | 9 ++++++++- wp-includes/version.php | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/wp-includes/class-wp-customize-nav-menus.php b/wp-includes/class-wp-customize-nav-menus.php index b15c9dce5b..3243c12c59 100644 --- a/wp-includes/class-wp-customize-nav-menus.php +++ b/wp-includes/class-wp-customize-nav-menus.php @@ -597,7 +597,14 @@ final class WP_Customize_Nav_Menus { // Attempt to re-map the nav menu location assignments when previewing a theme switch. $mapped_nav_menu_locations = array(); if ( ! $this->manager->is_theme_active() ) { - $mapped_nav_menu_locations = wp_map_nav_menu_locations( get_nav_menu_locations(), $this->original_nav_menu_locations ); + $theme_mods = get_option( 'theme_mods_' . $this->manager->get_stylesheet(), array() ); + + // If there is no data from a previous activation, start fresh. + if ( empty( $theme_mods['nav_menu_locations'] ) ) { + $theme_mods['nav_menu_locations'] = array(); + } + + $mapped_nav_menu_locations = wp_map_nav_menu_locations( $theme_mods['nav_menu_locations'], $this->original_nav_menu_locations ); } foreach ( $locations as $location => $description ) { diff --git a/wp-includes/version.php b/wp-includes/version.php index bd28f198fc..8fd15a1129 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.9-beta1-41809'; +$wp_version = '4.9-beta1-41810'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.