Добавляем параметры в настройки WordPress

Почти любой проект содержит параметры, которые удобно было бы вынести в админку. Это могут быть какие то переменные для шаблона или параметры для внутреннего пользования. Рассмотрим как это сделать с минимальными усилиями.

Наиболее очевидным механизмом для хранения переменных является использование API опций (options). Здесь мы рассмотрим как наиболее просто создать дополнительные поля для редактирования опций прямо в админке WordPress.

Терминология

Но для начала надо разобраться с терминологией.

В «Настройках» есть отдельные страницы или группы опций (Общие, Написание, Чтение, …), которые могут быть поделены на секции. А в определенные секции мы уже прикрепляем опции.

Т.е. есть иерархия — группа-секция-опция.

Регистрация опций

Предварительно опция должна быть зарегистрирована функцией register_setting(). Затем специальный метод add_settings_field() позволяет описать опцию и прикрепить её в нужную секцию страницы настроек.

Если выполнить add_settings_field() без register_setting(), то хоть опция и появится в шаблоне страницы, но при сохранении её изменения не будут зафиксированы.

Как определить имя страницы (группы)?

Имя группы настроек можно подсмотреть в uri соответствующей страницы. Например, страница «обсуждение» имеет следующий адрес:

Здесь имя группы будет — discussion.

Как определить имя секции?

Полный список зарегистрированных секций можно получить из глобальной переменной — $wp_settings_sections.

Новые секции регистрируются функцией add_settings_section($id, $title, $callback, $page).

Если имена секций неизвестны (лень подсматривать), то можно использовать ‘default’.

Чтение/изменение опций

Т.к. настройки — это часть options API, то чтение и запись производится методами get_option() и update_option().

Что касается работы с опцией в админ панели, то сохранение зарегистрированных настроек WP производит сам.

Пример

Добавим несколько опций на страницу Настройки -> Общие. Это будет телефон, email и адрес офиса — переменные, которые потом (по легенде) будут выводится в шаблоне. Специально для них создадим секцию — ‘Контакты’.

Регистрация лучше произвести во время admin_init:

Надеюсь, пример поможет вам сориентироваться и уже дальше развить его в то, что вам нужно на практике. Читайте также мануалы к функциям на https://developer.wordpress.org/.

Написать комментарий

Мало букафф? Читайте есчо !

SQL скрипт для удаления комментариев не прошедших проверку

Декабрь 8, 2015 г.

Есть у меня несколько сайтов на wordpress, которые я когда то сделал в порыве энтузиазма, а теперь не занимаюсь ими особо. На днях обратил внимание, что один из них содержит > 12000 непроверенных комментариев. Комментарии я давно не публикую сразу, ...

Читать

Фильтры Wordpress, заданные в текущий момент

Декабрь 20, 2016 г.

Если вам понадобилось посмотреть какие же фильтры установлены в текущий момент, то обращаться к WP API не нужно - такой функции нет. Полный список активных хуков хранится в глобальной переменной $wp_filter. [crayon-599eab003a2e1028207443/] Это массив ...

Читать

 

Комментарии к «Добавляем параметры в настройки WordPress»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: