Changeset 19455
- Timestamp:
- 11/26/2011 06:16:43 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/widgets.php
r19454 r19455 97 97 register_sidebar(array( 98 98 'name' => __( 'Inactive Sidebar (not used)' ), 99 'id' => 'orphaned_widgets-' .$sidebar_id,99 'id' => $sidebar_id, 100 100 'class' => 'inactive-sidebar orphan-sidebar', 101 101 'description' => __( 'This sidebar is no longer available and does not show anywhere on your site. Remove each of the widgets below to fully remove this inactive sidebar.' ), … … 345 345 <?php 346 346 foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) { 347 if ( 'wp_inactive_widgets' == $sidebar|| 'orphaned_widgets' == substr( $sidebar, 0, 16 ) ) {347 if ( false !== strpos( $registered_sidebar['class'], 'inactive-sidebar' ) || 'orphaned_widgets' == substr( $sidebar, 0, 16 ) ) { 348 348 $wrap_class = 'widgets-holder-wrap'; 349 349 if ( !empty( $registered_sidebar['class'] ) ) … … 377 377 $i = 0; 378 378 foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) { 379 if ( 'wp_inactive_widgets' == $sidebar|| 'orphaned_widgets' == substr( $sidebar, 0, 16 ) )379 if ( false !== strpos( $registered_sidebar['class'], 'inactive-sidebar' ) || 'orphaned_widgets' == substr( $sidebar, 0, 16 ) ) 380 380 continue; 381 381 -
trunk/wp-includes/widgets.php
r19340 r19455 1158 1158 $sidebars_widgets = wp_get_sidebars_widgets(); 1159 1159 1160 retrieve_widgets( );1160 retrieve_widgets(true); 1161 1161 } 1162 1162 1163 1163 // look for "lost" widgets, this has to run at least on each theme change 1164 function retrieve_widgets( ) {1164 function retrieve_widgets($theme_changed = false) { 1165 1165 global $wp_registered_widget_updates, $wp_registered_sidebars, $sidebars_widgets, $wp_registered_widgets; 1166 1166 1167 1167 $registered_sidebar_keys = array_keys( $wp_registered_sidebars ); 1168 $orphaned = 0; 1168 1169 1169 1170 $old_sidebars_widgets = get_theme_mod( 'sidebars_widgets' ); … … 1172 1173 $_sidebars_widgets = $old_sidebars_widgets['data']; 1173 1174 remove_theme_mod( 'sidebars_widgets' ); 1174 1175 $orphaned = 0;1176 1175 1177 1176 foreach ( $_sidebars_widgets as $sidebar => $widgets ) { … … 1203 1202 unset( $sidebars_widgets['wp_inactive_widgets'] ); 1204 1203 1205 foreach ( $wp_registered_sidebars as $id => $settings ) 1206 $_sidebars_widgets[$id] = array_shift( $sidebars_widgets ); 1207 1208 $orphaned = 0; 1204 foreach ( $wp_registered_sidebars as $id => $settings ) { 1205 if ( $theme_changed ) { 1206 $_sidebars_widgets[$id] = array_shift( $sidebars_widgets ); 1207 } else { 1208 // no theme change, grab only sidebars that are currently registered 1209 if ( isset( $sidebars_widgets[$id] ) ) { 1210 $_sidebars_widgets[$id] = $sidebars_widgets[$id]; 1211 unset( $sidebars_widgets[$id] ); 1212 } 1213 } 1214 } 1209 1215 1210 1216 foreach ( $sidebars_widgets as $val ) {
Note: See TracChangeset
for help on using the changeset viewer.