update_option() — позволяет обновить настройки сайта через код

Те, кто хоть раз заглядывал под капот тем или плагинов WordPress, наверняка встречали эту функцию.

update_option( $option_name, $option_value, $autoload = null )

Прежде, чем начать тупо описывать параметры этой функции, я предлагаю вам взглянуть на скриншот из phpMyAdmin из таблицы wp_options mysql-базы данных сайта.

Таблица настроек wp_options в базе данных WordPress

И сразу стало всё понятно. И сразу отпала необходимость описывать параметры $option_name и $option_value.

Если вы немного дружите с английским, то вам станет понятно, что это те же настройки, которые находятся в админке WordPress. Чтобы уж совсем всё стало ясно, вот скриншот из админки:

Общие настройки в админке WordPress

Как видите, абсолютно те же самые настройки, но только в другом порядке.

Функция update_option() нужна для обновления существующих настроек в базе данных, либо добавления новых, если настроек с заданным $option_name не существует.

Сразу сходу можно написать пример:

update_option('admin_email', 'true@truemisha.ru');

А теперь несколько важных моментов:

  • Если обновление настроек прошло успешно, функция возвращает true, иначе — false.
  • В версии 4.2 появился параметр $autoload и непосредственно в базе данных он имеет два значения — no и yes. yes означает, что в самом начале, при загрузке страницы, эту опцию нужно вытащить одним запросом из базы данных вместе с другими autoload-опциями и поместить в кэш.
  • В качестве значения параметра $option_value можно передавать несериализованный массив — он сериализуется автоматически внутри функции.
  • Передаваемые в функцию данные экранировать не нужно — это тоже происходит внутри неё.

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...