Создание и использование опций

wordpress-plugin-settings

Добавление полей настроек

Вы можете добавлять новые поля настроек (в основном в таблице wp_options базы данных) к существующим страницам WordPress, используя эту функцию. Вашей колбек-функции нужно просто вывести соответствующий HTML код и заполнить его старым значением; сохранение будет сделано в фоновом режиме. Вы можете создавать свои собственные разделы на существующих страницах, используя add_settings_section(), как описано ниже.

Примечание: Вы должны зарегистрировать какие-либо опции, которые вы используете с помощью add_settings_field() или они не будут сохранены и не будут автоматически обновляться. Подробности и пример ниже.

  • $id — строка для использования в ‘id’ атрибуте тегов.
  • $title — Название поля.
  • $callback — Функция, которая заполняет поле с требуемым вводом, как часть большей формы. Имя и идентификатор входа должны соответствовать $id переданные этой функции. Функция должна делать вывод.
  • $page — тип страницы настроек, на которой нужно показать поле (общие, написание, чтение, обсуждение, медиафайлы, приватность и постоянные ссылки).
  • $section — раздел страницы настроек, на которой показывать окно (по умолчанию или раздел, который вы добавили с помощью add_settings_section).
  • $args — Дополнительные аргументы

Добавление разделов настроек

Разделы настроек — группы настроек, которые вы видите на WordPress странице настроек с общим заголовком. В вашем плагине вы можете добавить новые разделы в существующие страницы настроек, а не создавать новую страницу целиком. Так ваш плагин проще поддерживать и создается меньше новых страниц для пользователей. Вы просто сообщаете им, что нужно изменить настройки на соответствующей существующей странице.

  • $id — строка для использования в ‘id’ атрибуте тегов.
  • $title — Название секции.
  • $callback — Функция, которая заполняет раздел нужным содержанием. Функция должна делать вывод.
  • $page — тип страницы настроек, на которой нужно показать секцию (общие, написание, чтение, обсуждение, медиафайлы и т.д.)

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

register_setting функция определяет фактическую опцию, которую будет хранить поле настроек.

  • $settings_section — имя группы настроек. Должно соответствовать белому списку имен ключей. По умолчанию белый список ключевых имен параметров включают в себя “general”, “discussion”, и “reading” (общие, написание, чтение и др.) Используйте эту группу при создании страницы опций.
  • $option_name — имя опции для обработки и сохранения. Вы можете использовать это имя с такими функциями, как get_option() и update_option().
  • $callback — функция, которая обрабатывает значение опции.

Примечание: register_setting(), а также вышеупомянутые add_settings_*() функции должны все быть вызваны из admin_init хука. См. на примере ниже.

Использование ваших настроек

Иметь настройки это хорошо, но они не помогут вам, если вы не можете на самом деле использовать их. Это достигается с помощью get_option() функции. Функция принимает два параметра: имя опции, которую вы пытаетесь получить и необязательное значение по умолчанию для этой опции.

В этом примере, вы принимаете настройку именуемую wporg_setting_name и, если ничего не сохранено для этой настройки, get_option вернет false. Возможно, вы могли бы называть опции по-другому, так что ваш код может выглядеть примерно так:

Теперь вы загрузили свои значения параметров в переменную $options, так что вы можете использовать эти настройки в коде. Вот более реалистичный сценарий, в котором новосозданная страница опций используется:

В приведенном выше примере, страница опций создана для настройки, которая используется для отображения или скрытия мета информации под контентом записи. Настройка зарегистрирована с помощью register_setting а get_option функция используется, чтобы вытащить значение из базы данных. Если вы решили, что хотите добавить еще одну настройку на страницу опций, вы можете использовать секцию настроек, именуемую wporg_options в ваших register_settings вызовах таким образом:

Навигация по разделам:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *