Ticket #17979: 17979.12.diff
| File 17979.12.diff, 1.9 KB (added by , 15 years ago) |
|---|
-
wp-includes/theme.php
1246 1246 * @param string $stylesheet Stylesheet name. 1247 1247 */ 1248 1248 function switch_theme($template, $stylesheet) { 1249 global $wp_theme_directories ;1249 global $wp_theme_directories, $sidebars_widgets; 1250 1250 1251 if ( ! is_array( $sidebars_widgets ) ) 1252 $sidebars_widgets = wp_get_sidebars_widgets(); 1253 set_theme_mod( 'sidebars_widgets', array( 'time' => time(), 'data' => $sidebars_widgets ) ); 1254 1251 1255 $old_theme = get_current_theme(); 1252 1256 1253 1257 update_option('template', $template); -
wp-includes/widgets.php
1201 1201 if ( ! is_array( $sidebars_widgets ) ) 1202 1202 $sidebars_widgets = wp_get_sidebars_widgets(); 1203 1203 1204 $key = md5( $old_theme );1205 // Store widgets for 1 week so we can restore if needed1206 set_transient( 'old_widgets_' . $key, $sidebars_widgets, 604800 );1207 1208 1204 retrieve_widgets(); 1209 1205 update_option( 'theme_switched', false ); 1210 1206 } … … 1214 1210 function retrieve_widgets() { 1215 1211 global $wp_registered_widget_updates, $wp_registered_sidebars, $sidebars_widgets, $wp_registered_widgets; 1216 1212 1217 $key = md5( get_current_theme() ); 1218 if ( false !== ( $_sidebars_widgets = get_transient( "old_widgets_{$key}" ) ) ) { 1219 delete_transient( "old_widgets_{$key}" ); 1213 $old_sidebars_widgets = get_theme_mod( 'sidebars_widgets' ); 1214 if ( is_array( $old_sidebars_widgets ) ) { 1215 // time() that sidebars were stored is in $old_sidebars_widgets['time'] 1216 $_sidebars_widgets = $old_sidebars_widgets['data']; 1217 remove_theme_mod( 'sidebars_widgets' ); 1220 1218 } else { 1221 1219 if ( ! is_array( $sidebars_widgets ) ) 1222 1220 $sidebars_widgets = wp_get_sidebars_widgets();
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)