add_settings_field()

19 февраля, 2025
Добавление поля настройки в группу настроек WordPress с помощью функции add_settings_field(): параметры, примеры, безопасность
Быстрая навигация по записи

Описание функции add_settings_field()

Функция add_settings_field() используется для добавления нового поля настройки в определенную группу настроек в админ-панели WordPress. Это позволяет разработчикам расширять функциональность настроек и управлять пользовательскими данными.

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

Параметры

$id

Тип: string

Обязательный: Да

Описание: Уникальный идентификатор поля настройки

Возможные значения:

$title

Тип: string

Обязательный: Да

Описание: Отображаемое название поля настройки

Возможные значения:

$callback

Тип: callable

Обязательный: Да

Описание: Функция обратного вызова для отображения поля настройки

Возможные значения:

$page

Тип: string

Обязательный: Да

Описание: Название страницы настроек, на которой будет отображаться поле

Возможные значения:

$section

Тип: string

Обязательный: Да

Описание: Имя секции, к которой будет привязано поле

Возможные значения:

Возвращаемое значение

Тип: void

Описание: Функция ничего не возвращает, но добавляет поле в указанный раздел настроек

Возможные значения:

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

Добавление простого поля настройки на страницу ‘Общие настройки’

				
					$id = 'my_setting';
$title = 'Моя настройка';
$callback = 'my_setting_callback';
$page = 'general';
$section = 'default';
add_settings_field($id, $title, $callback, $page, $section);
				
			

Функция обратного вызова должна быть определена отдельно

Добавление текстового поля с использованием анонимной функции

				
					$id = 'custom_option';
$title = 'Настройка опции';
$callback = function() {
    echo '<input type="text" name="custom_option" value="'. esc_attr(get_option('custom_option')).'" />';
};
$page = 'reading';
$section = 'my_custom_section';
add_settings_field($id, $title, $callback, $page, $section);
				
			

Используется для ввода текстовой настройки

Безопасность

Валидация входных данных: Параметры функции должны быть валидными строками и функциями

Санитизация: Содержимое поля должно быть очищено перед сохранением

Рекомендации: Используйте функции esc_attr() и sanitize_text_field() для выводимых данных

— Связанные функции

Добавляет секцию на страницу настроек

Регистрация настройки для хранения в базе данных

— Примечания

– Ограничения

Не работает вне контекста админ-панели

– Частые проблемы

  • Ошибки при вызове, если указаны неправильные имена секций или страниц
  • Поле может не отображаться, если оно не связано с зарегистрированной настройкой

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

Нужна помощь с WordPress WooCommerce плагинами темой оптимизацией ?

Упрощаем сложное, создаем впечатляющее!
100% без риска
Нет обязательств по найму
Бесплатная оценка
5900 ₽
Мега меню
Премиальный шаблон для создания сайта компании или интернет магазина с высокой конверсией на базе WordPress и WooCommerce, раскрывающий всю мощь плагина Elementor, как лучшего визуального редактора!

Поможем вывести Ваш бизнес на новый уровень!

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил

Добро пожаловать!

Авторизуйтесь, чтобы продолжить

или

Забыли пароль? Восстановить

* Если аккунта у Вас еще нет, то он будет создан автоматически.

* Отправляя данные, вы соглашаетесь с политикой конфиденциальности.

Давайте составим техническое задание!
100% без риска
Нет обязательств по найму
Бесплатная оценка стоимости
Здравствуйте! Я асистент на основе искусственного интеллекта. Вы можете общаться со мной, как с человеком — задавайте вопросы, описывайте свои идеи и требования.

С удовольствием помогу вам составить техническое задание для вашего WordPress проекта. Если Вам нужна техническая поддержка по купленному у нас плагину или шаблону, то создайте тикет в личном кабинете.

Выберите подходящий вариант или опишите свою задачу в свободной форме, и я помогу вам составить четкий план действий, для оценки стоимости нашими разработчиками! 😊