Advertisements

wp_convert_widget_settings

Definition:
function wp_convert_widget_settings($base_name, $option_name, $settings) {}

Convert the widget settings from single to multi-widget format.

Parameters

  • $base_name
  • $option_name
  • $settings

Source code

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;

}

3493

Advertisements

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: