Ticket #10300: 10300.3.patch
| File 10300.3.patch, 2.3 KB (added by , 17 years ago) |
|---|
-
wp-includes/widgets.php
967 967 if ( empty($_wp_sidebars_widgets) ) 968 968 $sidebars_widgets = get_option('sidebars_widgets', array()); 969 969 else 970 $sidebars_widgets = &$_wp_sidebars_widgets;970 return apply_filters('sidebars_widgets', $_wp_sidebars_widgets); 971 971 } 972 972 $_sidebars_widgets = array(); 973 973 … … 1024 1024 } 1025 1025 } 1026 1026 1027 // Assign to each unmatched registered sidebar the first available orphan 1028 unset( $sidebars_widgets[ 'array_version' ] ); 1029 while ( ( $sidebar = array_shift( $sidebars ) ) && $widgets = array_shift( $sidebars_widgets ) ) 1030 $_sidebars_widgets[ $sidebar ] = $widgets; 1027 // move the rest to wp_inactive_widgets 1028 if ( !isset($_sidebars_widgets['wp_inactive_widgets']) ) 1029 $_sidebars_widgets['wp_inactive_widgets'] = array(); 1030 1031 if ( !empty($sidebars_widgets) ) { 1032 foreach ( $sidebars_widgets as $lost => $val ) { 1033 if ( is_array($val) ) 1034 $_sidebars_widgets['wp_inactive_widgets'] = array_merge( (array) $_sidebars_widgets['wp_inactive_widgets'], $val ); 1035 } 1036 } 1031 1037 1032 1038 $_sidebars_widgets['array_version'] = 3; 1033 1039 $sidebars_widgets = $_sidebars_widgets; … … 1086 1092 * @return array 1087 1093 */ 1088 1094 function wp_convert_widget_settings($base_name, $option_name, $settings) { 1089 global $_wp_sidebars_widgets;1090 1095 // This test may need expanding. 1091 $single = false;1096 $single = $changed = false; 1092 1097 if ( empty($settings) ) { 1093 1098 $single = true; 1094 1099 } else { … … 1110 1115 $sidebars_widgets = get_option('sidebars_widgets'); 1111 1116 } else { 1112 1117 if ( empty($GLOBALS['_wp_sidebars_widgets']) ) 1113 $GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets');1118 $GLOBALS['_wp_sidebars_widgets'] = wp_get_sidebars_widgets(false); 1114 1119 $sidebars_widgets = &$GLOBALS['_wp_sidebars_widgets']; 1115 1120 } 1116 1121 … … 1119 1124 foreach ( $sidebar as $i => $name ) { 1120 1125 if ( $base_name == $name ) { 1121 1126 $sidebars_widgets[$index][$i] = "$name-2"; 1127 $changed = true; 1122 1128 break 2; 1123 1129 } 1124 1130 } 1125 1131 } 1126 1132 } 1127 1133 1128 if ( is_admin() )1134 if ( is_admin() && $changed ) 1129 1135 update_option('sidebars_widgets', $sidebars_widgets); 1130 1136 } 1131 1137