get_option() — функция для получения значений настроек из базы данных

Одна из самых часто используемых функций в WordPress (сужу по себе и по тем темам, с которыми мне приходилось работать). Странно, что я описываю её у себя на блоге только сейчас.

get_option( $option_name, $default = false )
$option_name
(строка) Название настройки. И сейчас я покажу вам несколько интересных методов относительно того, где брать эти названия.

Метод 1. Насколько вы знаете (а может и не знаете), настройки сайта хранятся в базе данных в таблице wp_options (префикс wp_ может отличаться). Открываем phpMyAdmin, выбираем нужную нам базу данных и переходим в таблицу wp_options.

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

Вот пожалуйста и все $option_name (понятное дело, на скриншоте не вся таблица, а лишь малая часть).

Метод 2. Благодаря ему вы можете узнать название любой настройки, какой захотите. Заходим на страницу настроек, например у меня тут Настройки > Общие, кликаем на интересующем вас поле правой и выбираем Проверить элемент (это в браузере Google Chrome, в других может и отличаться).

Как узнать $option_name любой настройки на сайте.

Значение HTML-атрибута name это как раз то, что нам нужно.

Метод 3 заключается в том, что я просто перечислю вам несколько основных значений настроек, которые мне самому приходится часто использовать и которые вы сможете получить при помощи этой функции.

  • admin_email — Основной емайл сайта, не тот, который в профиле пользователя администратора, а тот, который в общих настройках сайта.
  • blogname — Название сайта.
  • blogdescription — Описание сайта (Ещё один сайт на WordPress).
  • blog_charset — Кодировка сайта.

Всё. Ещё часто приходится получать URL-адрес сайта, но для этого я пользуюсь функцией site_url().

$default
(число|строка|массив|объект) Если вы хотите получить какую-то несуществующую опцию сайта, то функция get_option() либо возвращает false, либо то, что указано в этом втором параметре.

Примеры использования функции

Пример 1

При помощи функции wp_mail() отправляем письмо на основной емайл сайта.

wp_mail( get_option('admin_email'), 'Какая-то тема', 'Какое-то сообщение' );

Пример 2

Пробуем получить несуществующую настройку сайта, а если не получается, то выводим емайл администратора :)

echo get_option('fhkj_7dkn6jj', get_option('admin_email') );

Так как email обязателен для заполнения, я думаю, что там не нужно указывать значение по умолчанию.

Пример 3

То, с чем вы часто можете столкнуться в header.php.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="<?php echo get_option('blog_charset') ?>">

Хотя мне всё ещё трудно понять, почему кодировку не указываем статично — покажите мне сайт на WordPress не с UTF-8. Я конечно понимаю, что здесь не создаётся лишнего запроса к базе и значение берётся из кэша, но всё же.

Кстати, для подобных целей ещё часто используется функция get_bloginfo().

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

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

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

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

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

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