# wp_convert_widget_settings()

URL: https://chugunov.pro/api-wordpress/functions/wp_convert_widget_settings/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.8.0.

## Сигнатура

```php
wp_convert_widget_settings( string $base_name, string $option_name, array $settings ): array
```

## Описание

Преобразует настройки виджета из формата одиночного виджета в формат мультивиджета.

## Параметры

- `$base_name` `string` — обязательный. Корневой ID для всех виджетов этого типа.
- `$option_name` `string` — обязательный. Имя опции для этого типа виджета.
- `$settings` `array` — обязательный. Массив настроек экземпляра виджета.

## Возвращаемое значение

`array`

## Исходный код

Файл: `wp-includes/widgets.php:1139`

```php
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;
}
```

## История изменений

- 2.8.0 — Introduced.

## Связанные

Использует: [`is_admin`](https://chugunov.pro/api-wordpress/functions/is_admin/), [`update_option`](https://chugunov.pro/api-wordpress/functions/update_option/), [`get_option`](https://chugunov.pro/api-wordpress/functions/get_option/).
Используется в: `WP_Widget::get_settings`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_convert_widget_settings/
