Widgets: Revert format of `sidebars_widgets`.

Restores the data format of the `sidebars_widgets` theme mod to its pre [41555]
format. It can trigger PHP warnings after switching themes if that mod has not
been removed previously.

Fixes #39693.



git-svn-id: https://develop.svn.wordpress.org/trunk@41673 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Konstantin Obenland 2017-10-02 18:10:06 +00:00
parent 32a6ac3918
commit 4666f2fd39
3 changed files with 9 additions and 5 deletions

View File

@ -690,7 +690,7 @@ function switch_theme( $stylesheet ) {
}
if ( is_array( $_sidebars_widgets ) ) {
set_theme_mod( 'sidebars_widgets', $_sidebars_widgets );
set_theme_mod( 'sidebars_widgets', array( 'time' => time(), 'data' => $_sidebars_widgets ) );
}
$nav_menu_locations = get_theme_mod( 'nav_menu_locations' );

View File

@ -1286,6 +1286,7 @@ function wp_map_sidebars_widgets( $existing_sidebars_widgets ) {
// Sidebars_widgets settings from when this theme was previously active.
$old_sidebars_widgets = get_theme_mod( 'sidebars_widgets' );
$old_sidebars_widgets = $old_sidebars_widgets['data'];
if ( is_array( $old_sidebars_widgets ) ) {

View File

@ -713,10 +713,13 @@ class Tests_Widgets extends WP_UnitTestCase {
// Test restoring sidebars widgets when previously activated.
set_theme_mod( 'sidebars_widgets', array(
'sidebar-1' => array( 'tag_cloud-1' ),
'sidebar-2' => array(),
'sidebar-3' => array( 'unregistered_widget-1', 'text-1', 'media_image-1' ),
'orphaned_widgets_1' => array( 'media_video-2' ),
'time' => time(),
'data' => array(
'sidebar-1' => array( 'tag_cloud-1' ),
'sidebar-2' => array(),
'sidebar-3' => array( 'unregistered_widget-1', 'text-1', 'media_image-1' ),
'orphaned_widgets_1' => array( 'media_video-2' ),
),
) );
$sidebars_widgets = array(