функция
since 2.8.0
wp_convert_widget_settings()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
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
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. |

