Функция add_option()
используется для добавления новых настроек (опций) в базу данных WordPress. Опции хранятся в таблице wp_options
, и их можно использовать для хранения различных параметров, конфигураций или данных, которые могут понадобиться вашему сайту.
add_option( string $option, mixed $value = '', string $deprecated = '', bool|null $autoload = null ): bool
Параметры:
$option
(строка, обязательный): Имя опции. Это уникальный идентификатор, по которому она будет сохранена и вызвана в будущем.$value
(mixed, необязательный): Значение опции. Оно должно быть сериализуемым (например, строка, массив, число и т.д.).$deprecated
(строка, необязательный): Устаревший параметр, не используется. По умолчанию — пустая строка.$autoload
(bool|null, необязательный): Указывает, нужно ли загружать опцию при каждом запуске WordPress. Принимает значенияtrue
(автозагрузка),false
(без автозагрузки) илиnull
(WordPress решает автоматически). По умолчанию —null
.
Возвращаемое значение:
true
— если опция успешно добавлена.false
— если опция уже существует или не была добавлена.
Особенности
- Сериализация: Если значение опции является массивом или объектом, WordPress автоматически сериализует его перед сохранением.
- Защита от дублирования: Функция не изменяет существующую опцию. Если опция с указанным именем уже существует, функция просто вернет
false
. - Автозагрузка: Опции, которые используются на большинстве страниц сайта, рекомендуется загружать автоматически, чтобы избежать лишних запросов к базе данных. Однако слишком большое количество автозагружаемых опций может негативно повлиять на производительность сайта.
Пример 1: Добавление простой опции
Допустим, мы хотим сохранить настройку my_custom_option
со значением 123
, которая будет автоматически загружаться при каждом запуске WordPress:
<?php
add_option( 'my_custom_option', '123' );
?>
В этом примере параметр $autoload
по умолчанию установлен в true
, что означает, что опция будет загружена при каждом запуске сайта.
Пример 2: Добавление опции без автозагрузки
Если настройка используется редко и вы хотите снизить нагрузку на систему, можно отключить автозагрузку, установив значение $autoload
в false
.
<?php
add_option( 'my_non_autoload_option', '456', '', false );
?>
В этом случае опция не будет автоматически загружена при запуске WordPress. Она будет доступна только при прямом вызове функции get_option()
.
Пример 3: Добавление опции с массивом
Функция add_option()
позволяет сохранять сложные структуры данных, такие как массивы. В этом примере мы сохраняем массив значений в опцию.
<?php
$settings = array(
'color' => 'blue',
'size' => 'large',
'font' => 'Arial'
);
add_option( 'my_theme_settings', $settings );
?>
WordPress автоматически сериализует массив перед сохранением в базу данных. Позже его можно будет получить через get_option()
в виде массива.
Пример 4: Обновление опции после добавления
Хотя add_option()
не изменяет существующие опции, вы можете добавить опцию с пустым значением и обновить её позже с помощью функции update_option()
.
<?php
// Сначала добавляем опцию без значения.
add_option( 'my_delayed_option', '' );
// Затем обновляем значение опции.
update_option( 'my_delayed_option', '789' );
?>
Этот подход может быть полезен, если значение опции становится доступным только после выполнения определенных действий или событий.
Пример 5: Работа с автозагрузкой
Иногда возникает ситуация, когда нужно определить, как будет происходить автозагрузка опции. Например, если настройка используется часто, её можно настроить так, чтобы она всегда загружалась при старте WordPress:
<?php
add_option( 'my_frequently_used_option', 'important_value', '', true );
?>
Напротив, для настроек, которые редко используются, автозагрузку можно отключить:
<?php
add_option( 'my_rarely_used_option', 'less_important_value', '', false );
?>
Заключение
Функция add_option()
— это мощный инструмент для работы с пользовательскими настройками в WordPress. Она позволяет легко сохранять и управлять данными, а благодаря автозагрузке вы можете оптимизировать работу сайта. Однако важно помнить, что слишком большое количество автозагружаемых опций может замедлить загрузку страниц, поэтому рекомендуется тщательно выбирать, какие опции следует загружать автоматически.