Ticket #17979: 17979.13.diff

File 17979.13.diff, 1.9 KB (added by lancewillett, 20 months ago)

Combines patch on #18598 with removing unneeded wp_get_sidebars_widgets() from switch_theme()

Line 
1Index: wp-includes/theme.php
2===================================================================
3--- wp-includes/theme.php       (revision 18670)
4+++ wp-includes/theme.php       (working copy)
5@@ -1248,9 +1248,8 @@
6 function switch_theme($template, $stylesheet) {
7        global $wp_theme_directories, $sidebars_widgets;
8 
9-       if ( ! is_array( $sidebars_widgets ) )
10-               $sidebars_widgets = wp_get_sidebars_widgets();
11-       set_theme_mod( 'sidebars_widgets', array( 'time' => time(), 'data' => $sidebars_widgets ) );
12+       if ( is_array( $sidebars_widgets ) )
13+               set_theme_mod( 'sidebars_widgets', array( 'time' => time(), 'data' => $sidebars_widgets ) );
14 
15        $old_theme = get_current_theme();
16 
17Index: wp-includes/widgets.php
18===================================================================
19--- wp-includes/widgets.php     (revision 18670)
20+++ wp-includes/widgets.php     (working copy)
21@@ -998,7 +998,7 @@
22        if ( $deprecated !== true )
23                _deprecated_argument( __FUNCTION__, '2.8.1' );
24 
25-       global $wp_registered_widgets, $wp_registered_sidebars, $_wp_sidebars_widgets;
26+       global $wp_registered_widgets, $wp_registered_sidebars, $_wp_sidebars_widgets, $sidebars_widgets;
27 
28        // If loading from front page, consult $_wp_sidebars_widgets rather than options
29        // to see if wp_convert_widget_settings() has made manipulations in memory.
30@@ -1219,9 +1219,6 @@
31                $_sidebars_widgets = $old_sidebars_widgets['data'];
32                remove_theme_mod( 'sidebars_widgets' );
33        } else {
34-               if ( ! is_array( $sidebars_widgets ) )
35-                       $sidebars_widgets = wp_get_sidebars_widgets();
36-
37                $sidebars = array_keys($wp_registered_sidebars);
38 
39                unset( $sidebars_widgets['array_version'] );
40@@ -1234,7 +1231,7 @@
41                        return;
42 
43                $_sidebars_widgets = array(
44-                       'wp_inactive_widgets' => $sidebars_widgets['wp_inactive_widgets']
45+                       'wp_inactive_widgets' => !empty( $sidebars_widgets['wp_inactive_widgets'] ) ? $sidebars_widgets['wp_inactive_widgets'] : array()
46                );
47 
48                unset( $sidebars_widgets['wp_inactive_widgets'] );