update_blog_option()WP 3.0.0

Обновляет опцию указанного сайта в сети WordPress Multisite.

Если нужно обновить опцию текущего сайта, вызывает update_option(). Если указан другой сайт, ереключается на него через switch_to_blog(), обновляет опцию и затем возвращается обратно через restore_current_blog().

Функция предназначена для Multisite. Однако также будет работать и в обычной установке аналогично функции update_option().

Работает на основе: update_option()

Хуков нет.

Возвращает

true|false.

  • true — если значение опции было изменено.
  • false — если значение не изменилось или обновить опцию не удалось.

false в результате не всегда означает ошибку. Так как внутри используется update_option(), функция также получит false, если новое значение совпадает со старым.

Использование

update_blog_option( $id, $option, $value, $deprecated );
$id(int) (обязательный)
ID сайта в сети Multisite.
$option(string) (обязательный)
Название опции, которую нужно обновить.
$value(mixed) (обязательный)
Новое значение опции. Значение можно передавать без ручной сериализации — update_option() сделает это сам, если нужно.
$deprecated(mixed)
Не используется. Если передать значение, отличное от null, WordPress вызовет предупреждение через _deprecated_argument().
По умолчанию: null

Примеры

#1 Обновление названия сайта по ID

Обновляет опцию blogname для сайта с ID 3.

$updated = update_blog_option( 3, 'blogname', 'Новый сайт' );

if ( $updated ) {
	echo 'Название сайта обновлено.';
}

#2 Обновление пользовательской опции для другого сайта

Сохраняет массив настроек в опцию указанного сайта.

$settings = [
	'color'   => 'blue',
	'layout'  => 'wide',
	'enabled' => true,
];

update_blog_option( 5, 'my_plugin_settings', $settings );

#3 Проверка результата с учетом неизмененного значения

Показывает, что false может означать не ошибку, а отсутствие изменений.

$site_id = 2;
$option  = 'blogdescription';
$value   = 'Описание сайта';

$updated = update_blog_option( $site_id, $option, $value );

if ( $updated ) {
	echo 'Опция была изменена.';
} else {
	echo 'Опция не изменилась или обновление не удалось.';
}

Список изменений

С версии 3.0.0 Введена.

Код update_blog_option() WP 7.0

function update_blog_option( $id, $option, $value, $deprecated = null ) {
	$id = (int) $id;

	if ( null !== $deprecated ) {
		_deprecated_argument( __FUNCTION__, '3.1.0' );
	}

	if ( get_current_blog_id() === $id ) {
		return update_option( $option, $value );
	}

	switch_to_blog( $id );
	$return = update_option( $option, $value );
	restore_current_blog();

	return $return;
}