- $found = false;
-
- foreach ( $wp_registered_widgets as $widget_id => $widget ) {
- if ( strtolower($widget['name']) == strtolower($name) ) {
- $_sidebars_widgets[$index][$i] = $widget['id'];
- $found = true;
- break;
- } elseif ( sanitize_title($widget['name']) == sanitize_title($name) ) {
- $_sidebars_widgets[$index][$i] = $widget['id'];
- $found = true;
- break;
+ $sidebars_widgets = $_wp_sidebars_widgets;
+ } else {
+ $sidebars_widgets = get_option('sidebars_widgets', array());
+ $_sidebars_widgets = array();
+
+ if ( isset($sidebars_widgets['wp_inactive_widgets']) || empty($sidebars_widgets) )
+ $sidebars_widgets['array_version'] = 3;
+ elseif ( !isset($sidebars_widgets['array_version']) )
+ $sidebars_widgets['array_version'] = 1;
+
+ switch ( $sidebars_widgets['array_version'] ) {
+ case 1 :
+ foreach ( (array) $sidebars_widgets as $index => $sidebar )
+ if ( is_array($sidebar) )
+ foreach ( (array) $sidebar as $i => $name ) {
+ $id = strtolower($name);
+ if ( isset($wp_registered_widgets[$id]) ) {
+ $_sidebars_widgets[$index][$i] = $id;
+ continue;
+ }
+ $id = sanitize_title($name);
+ if ( isset($wp_registered_widgets[$id]) ) {
+ $_sidebars_widgets[$index][$i] = $id;
+ continue;