wp_convert_widget_settings()
Converts the widget settings from single to multi-widget format.
No Hooks.
Return
Array
. The array of widget settings converted to multi-widget format.
Usage
wp_convert_widget_settings( $base_name, $option_name, $settings );
- $base_name(string) (required)
- Root ID for all widgets of this type.
- $option_name(string) (required)
- Option name for this widget type.
- $settings(array) (required)
- The array of widget instance settings.
Notes
- Global. Array. $_wp_sidebars_widgets
Changelog
Since 2.8.0 | Introduced. |
wp_convert_widget_settings() wp convert widget settings code WP 6.7.2
function wp_convert_widget_settings( $base_name, $option_name, $settings ) { // This test may need expanding. $single = false; $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; }