В этой заметке я кратко опишу процесс создания, редактирования и изменения и удаления опций в WordPress. Изначально потребность работы с опциями в WordPress у меня возникла в процессе написания функции для минификации содержимого файлов CSS. Чтобы не выполнять постоянно одну и туже операцию, нужно было хранить в базе WordPress хэш искомого файла стилей.
Создать новую опцию
Для создания опции в WordPress используется функция add_option()
. После первого выполнения функция создает в базе WordPress новую запись, которую WordPress будет использовать для хранения настроек. Если опция с указанным именем уже существует, то в процессе вызова функции ничего не произойдет.
Синтаксис использования функции add_option()
:
add_option($name, $value = '', $deprecated = '', $autoload = 'yes');
Описание параметров:
$name
— название опции, которая будет добавлена. Используйте слова в нижнем регистре, вместо пробела используйте нижнее подчеркивание.$value
— значение опции. Может быть пустым.$deprecated -
текст описывающий опцию. Параметр больше не используется. Оставляем значение пустым.$autoload
— должна ли опция загружаться автоматически функциейwp_load_alloptions
. Использует значения:yes
илиno
.
Пример использования функции для добавления новой опции в WordPress:
add_option("my_option_name", '123', '', 'yes');
Необходимо отметить, что описание опций больше не используется в WordPress, поэтому, третий параметр всегда указывается пустым.
Получить значение опции
Когда новая опция создана в базе WordPress, ее значение можно получить с помощью функции get_option()
. Если в MySQL опция с указанным именем не существует, функция вернет FALSE
.
Синтаксис использования функции get_option()
:
get_option($name, $default);
Описание параметров:
$name
— название опции, значение которой необходимо получить.$value
— значение по умолчанию, если никакого значения не вернулось.
Обновить значение опции
Как правило, функцию update_option()
используют для изменения существующих опций в WordPress. Но эту функцию можно использовать и для создания новой опции. В этом случае update_option()
проверяет наличие опции с указанным именем в базе данных. В случае ее отсутствия, будет автоматически вызвана функция add_option()
.
update_option($name, $newvalue);
Описание параметров:
$name
— название опции, значение которой необходимо изменить.$newvalue
— новое значение для опции.
Пример использования функции для изменения значения опции в WordPress:
$option_name = 'my_option'; $newvalue = '123'; if ( get_option($option_name) ) { update_option($option_name, $newvalue); }
Связи с тем, что при отсутствии опции с указным именем функция update_option()
создает новую запись в базе, перед ее использованием рекомендуется выполнить проверку наличия опции.
Удалить опцию из базы WordPress
Чтобы удалить опцию из таблицы options
в базе данных WordPress необходимо использовать функцию delete_option()
.
Синтаксис использования функции delete_option()
:
delete_option( $name );
$name
— название опции, которая будет удалена.
Пример использования функции для удаления одной или нескольких опций в WordPress:
// Описание функции function deleteOptions() { // Массив с названиями опций $args = func_get_args(); $num = count($args); // Удаление одной опции if ($num == 1) { return (delete_option($args[0]) ? TRUE : FALSE); } // Удаление группы опций elseif (count($args) > 1) { foreach ($args as $option) { if ( ! delete_option($option)) return FALSE; } return TRUE; } return FALSE; } // Вызов функции deleteOptions if (deleteOptions('is_installed', 'my_plugin_version', 'my_option')) echo 'Опции были удалены!'; else echo 'Ошибка в процессе удаления!';