Функция update_option()
в WordPress позволяет обновлять значения опций, которые уже были добавлены. Она автоматически обрабатывает сериализацию значений и может создавать новые опции, если они ещё не существуют. В этой статье мы рассмотрим основные параметры и приведем примеры использования функции.
update_option( string $option, mixed $value, bool|null $autoload = null ): bool
Параметры
- $option (string, обязательный): Название опции, которую нужно обновить. Это значение не должно быть экранировано.
- $value (mixed, обязательный): Новое значение опции. Оно может быть любым типом, который может быть сериализован, если это не скалярное значение.
- $autoload (bool|null, необязательный): Указывает, нужно ли загружать опцию при старте WordPress. По умолчанию значение —
null
, что означает, что WordPress решит самостоятельно.
Возвращаемое значение
Функция возвращает true
, если значение было обновлено, и false
, если оно не изменилось или произошла ошибка.
Пример 1: Обновление существующей опции
Давайте обновим опцию с названием my_setting
новым значением новое значение
.
$option_name = 'my_setting';
$new_value = 'новое значение';
if ( update_option($option_name, $new_value) ) {
echo "Опция обновлена на: " . get_option($option_name);
} else {
echo "Не удалось обновить опцию.";
}
Пример 2: Создание новой опции
Если опция user_preference
не существует, она будет создана с заданным значением:
$option_name = 'user_preference';
$new_value = 'dark_mode';
update_option($option_name, $new_value);
Пример 3: Указание параметра autoload
Вы можете указать, будет ли опция загружаться автоматически:
$option_name = 'session_timeout';
$new_value = 30; // время в минутах
update_option($option_name, $new_value, 'no'); // Не загружать автоматически
Пример 4: Проверка существования опции
Иногда важно проверить, существует ли опция, прежде чем её обновлять:
$option_name = 'api_key';
$new_value = 'abcdef123456';
if ( get_option($option_name) !== false ) {
update_option($option_name, $new_value);
} else {
add_option($option_name, $new_value);
}
Пример 5: Работа с массивами
update_option()
также позволяет обновлять многомерные массивы:
$options = array(
'color' => 'blue',
'size' => 'large',
);
update_option('product_settings', $options);
// Получить и вывести массив
$current_settings = get_option('product_settings');
print_r($current_settings);
Пример 6: Проверка прав пользователя
Важно проверять права пользователя перед изменением настроек:
global $current_user;
$option_key = 'admin_only_setting';
$option_value = 'some_value';
if ( current_user_can('manage_options') ) {
update_option($option_key, $option_value);
} else {
echo "У вас нет прав для изменения этой опции.";
}
Заключение
Функция update_option()
является мощным инструментом для управления настройками в WordPress. Она упрощает процесс обновления и создания опций, позволяя разработчикам легко работать с параметрами конфигурации. Используйте её ответственно, особенно учитывая возможность автозагрузки, чтобы избежать проблем с производительностью.