WordPress.org

Make WordPress Core

Ticket #10300: 10300.2.patch

File 10300.2.patch, 1.7 KB (added by azaozz, 5 years ago)
  • wp-includes/widgets.php

     
    967967                if ( empty($_wp_sidebars_widgets) ) 
    968968                        $sidebars_widgets = get_option('sidebars_widgets', array()); 
    969969                else 
    970                         $sidebars_widgets = &$_wp_sidebars_widgets; 
     970                        return $_wp_sidebars_widgets; 
    971971        } 
    972972        $_sidebars_widgets = array(); 
    973973 
     
    10861086 * @return array 
    10871087 */ 
    10881088function wp_convert_widget_settings($base_name, $option_name, $settings) { 
    1089         global $_wp_sidebars_widgets; 
    10901089        // This test may need expanding. 
    1091         $single = false; 
     1090        $single = $changed = false; 
    10921091        if ( empty($settings) ) { 
    10931092                $single = true; 
    10941093        } else { 
     
    11071106 
    11081107                // If loading from the front page, update sidebar in memory but don't save to options 
    11091108                if ( is_admin() ) { 
    1110                         $sidebars_widgets = get_option('sidebars_widgets'); 
     1109                        $sidebars_widgets = wp_get_sidebars_widgets(); 
    11111110                } else { 
    11121111                        if ( empty($GLOBALS['_wp_sidebars_widgets']) ) 
    1113                                 $GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets'); 
     1112                                $GLOBALS['_wp_sidebars_widgets'] = wp_get_sidebars_widgets(false); 
    11141113                        $sidebars_widgets = &$GLOBALS['_wp_sidebars_widgets']; 
    11151114                } 
    11161115 
     
    11191118                                foreach ( $sidebar as $i => $name ) { 
    11201119                                        if ( $base_name == $name ) { 
    11211120                                                $sidebars_widgets[$index][$i] = "$name-2"; 
     1121                                                $changed = true; 
    11221122                                                break 2; 
    11231123                                        } 
    11241124                                } 
    11251125                        } 
    11261126                } 
    11271127 
    1128                 if ( is_admin() ) 
    1129                         update_option('sidebars_widgets', $sidebars_widgets); 
     1128                if ( is_admin() && $changed ) { 
     1129                        $order = $sidebars_widgets; 
     1130                        $order['array_version'] = 3; 
     1131                        update_option('sidebars_widgets', $order); 
     1132                } 
    11301133        } 
    11311134 
    11321135        $settings['_multiwidget'] = 1;