Customizer: Account for legacy menu data

Checks for menu location data from when a previewed theme was previously active.

See #39692.


git-svn-id: https://develop.svn.wordpress.org/trunk@41810 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Konstantin Obenland 2017-10-10 17:05:01 +00:00
parent 911c380a83
commit 828dff99e9
1 changed files with 8 additions and 1 deletions

View File

@ -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 ) {