Get_option() - функция для получения настроек сайта WP
Опубликовано: 01.09.2018
Одна из самых часто используемых функций в WordPress (сужу по себе и по тем темам, с которыми мне приходилось работать). Странно, что я описываю её у себя на блоге только сейчас.
get_option ( $option_name , $default = false ) |
Метод 1. Насколько вы знаете (а может и не знаете), настройки сайта хранятся в базе данных в таблице wp_options (префикс wp_ может отличаться ). Открываем phpMyAdmin, выбираем нужную нам базу данных и переходим в таблицу wp_options.
Вот пожалуйста и все $option_name (понятное дело, на скриншоте не вся таблица, а лишь малая часть).
Метод 2. Благодаря ему вы можете узнать название любой настройки, какой захотите. Заходим на страницу настроек, например у меня тут Настройки > Общие, кликаем на интересующем вас поле правой и выбираем Проверить элемент (это в браузере Google Chrome, в других может и отличаться).
Значение 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() .