wp_convert_widget_settings( string $base_name, string $option_name, array $settings )
Convert the widget settings from single to multi-widget format.
Parameters
- $base_name
-
(Required)
- $option_name
-
(Required)
- $settings
-
(Required)
Return
(array)
Source
File: wp-includes/widgets.php
function wp_convert_widget_settings($base_name, $option_name, $settings) {
// This test may need expanding.
$single = $changed = false;
if ( empty($settings) ) {
$single = true;
} else {
foreach ( array_keys($settings) as $number ) {
if ( 'number' == $number )
continue;
if ( !is_numeric($number) ) {
$single = true;
break;
}
}
}
if ( $single ) {
$settings = array( 2 => $settings );
// If loading from the front page, update sidebar in memory but don't save to options
if ( is_admin() ) {
$sidebars_widgets = get_option('sidebars_widgets');
} else {
if ( empty($GLOBALS['_wp_sidebars_widgets']) )
$GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets', array());
$sidebars_widgets = &$GLOBALS['_wp_sidebars_widgets'];
}
foreach ( (array) $sidebars_widgets as $index => $sidebar ) {
if ( is_array($sidebar) ) {
foreach ( $sidebar as $i => $name ) {
if ( $base_name == $name ) {
$sidebars_widgets[$index][$i] = "$name-2";
$changed = true;
break 2;
}
}
}
}
if ( is_admin() && $changed )
update_option('sidebars_widgets', $sidebars_widgets);
}
$settings['_multiwidget'] = 1;
if ( is_admin() )
update_option( $option_name, $settings );
return $settings;
}
Changelog
Version | Description |
---|---|
WP-2.8.0 | Introduced. |