- Описание функции
- Примеры использования
- Создание поля на странице настроек
- Отображение поля на странице настроек
- Настройка атрибутов поля
- Использование дополнительных аргументов
- Вопросы и ответы
- Как добавить новое поле на страницу настроек?
- Как задать уникальный идентификатор для поля?
- Как задать заголовок для поля?
- Как задать функцию, которая заполняет поле формой?
- На какой странице настроек показывать поле?
- Как задать секцию страницы настроек, в которой показывать поле?
- Связанные элементы
Описание функции
Функция add_settings_field() добавляет новое поле в секцию страницы настроек.
Она используется для создания и отображения пользовательских полей на странице настроек WordPress. Функция позволяет добавить поле с настраиваемыми параметрами, такими как заголовок, тип поля, описание и т. д.
После добавления поля, оно будет отображаться в указанной секции на странице настроек, и пользователь сможет вводить данные в это поле.
Использование
add_settings_field( string $id, string $title, callable $callback, string $page, string $section = 'default', array $args = array() ) Функция add_settings_field() принимает следующие параметры:
$id(строка, обязательный): Уникальное имя поля. Используется в атрибутеidтегов.$title(строка, обязательный): Заголовок поля. Отображается как метка для поля при выводе.$callback(callable, обязательный): Функция, которая заполняет поле нужными элементами формы. Функция должна выводить свой результат с помощьюecho.$page(строка, обязательный): Имя страницы настроек, на которой нужно показать секцию (например, general, reading, writing и т. д.).$section(строка, необязательный): Имя секции страницы настроек, в которой нужно показать поле. По умолчанию — ‘default’.$args(массив, необязательный): Дополнительные аргументы, передаваемые в функцию обратного вызова.label_for(строка): Если указано, заголовок поля будет обернут в элементlabel, а его атрибутforбудет заполнен этим значением.class(строка): CSS-класс, который будет добавлен к элементу при выводе поля.
<?php
function my_custom_field_callback( $args ) {
$option_name = $args['option_name'];
$value = get_option( $option_name );
?>
<input type="text" name="<?php echo esc_attr( $option_name ); ?>" value="<?php echo esc_attr( $value ); ?>" />
<?php
}
function my_custom_settings_page() {
add_settings_section( 'my_custom_section', 'My Custom Section', 'my_custom_section_callback', 'general' );
add_settings_field( 'my_custom_field', 'My Custom Field', 'my_custom_field_callback', 'general', 'my_custom_section', array( 'option_name' => 'my_custom_option' ) );
register_setting( 'general', 'my_custom_option' );
}
add_action( 'admin_init', 'my_custom_settings_page' );
?> В этом примере мы создаем страницу настроек и добавляем секцию с полем. Функция my_custom_field_callback() является функцией обратного вызова, которая выводит поле ввода типа «text». Значение поля получается с помощью функции get_option() и выводится в атрибуте «value».
Затем мы добавляем секцию и поле с помощью функций add_settings_section() и add_settings_field(). Параметр 'my_custom_option' передается в функцию обратного вызова через массив $args.
Наконец, мы регистрируем настройку с помощью функции register_setting(), чтобы сохранить значение поля при отправке формы.
Примеры использования
Создание поля на странице настроек
function my_settings_field_callback() {
// Код для заполнения поля формой
echo '<input type="text" name="my_settings_field" value="' . esc_attr( get_option( 'my_settings_field' ) ) . '" />';
}
add_action( 'admin_init', 'my_settings_field_init' );
function my_settings_field_init() {
add_settings_section(
'my_settings_section',
'My Settings Section',
'my_settings_section_callback',
'general'
);
add_settings_field(
'my_settings_field',
'My Settings Field',
'my_settings_field_callback',
'general',
'my_settings_section'
);
register_setting( 'general', 'my_settings_field' );
}
function my_settings_section_callback() {
// Код для отображения описания секции
echo 'This is my settings section.';
}
Отображение поля на странице настроек
function my_settings_field_callback() {
// Код для заполнения поля формой
echo '<input type="text" name="my_settings_field" value="' . esc_attr( get_option( 'my_settings_field' ) ) . '" />';
}
add_action( 'admin_init', 'my_settings_field_init' );
function my_settings_field_init() {
add_settings_section(
'my_settings_section',
'My Settings Section',
'my_settings_section_callback',
'general'
);
add_settings_field(
'my_settings_field',
'My Settings Field',
'my_settings_field_callback',
'general',
'my_settings_section'
);
register_setting( 'general', 'my_settings_field' );
}
function my_settings_section_callback() {
// Код для отображения описания секции
echo 'This is my settings section.';
}
Настройка атрибутов поля
function my_settings_field_callback() {
// Код для заполнения поля формой
echo '<input type="text" name="my_settings_field" value="' . esc_attr( get_option( 'my_settings_field' ) ) . '" />';
}
add_action( 'admin_init', 'my_settings_field_init' );
function my_settings_field_init() {
add_settings_section(
'my_settings_section',
'My Settings Section',
'my_settings_section_callback',
'general'
);
add_settings_field(
'my_settings_field',
'My Settings Field',
'my_settings_field_callback',
'general',
'my_settings_section',
array(
'label_for' => 'my_settings_field',
'class' => 'my-settings-field',
)
);
register_setting( 'general', 'my_settings_field' );
}
function my_settings_section_callback() {
// Код для отображения описания секции
echo 'This is my settings section.';
}
Использование дополнительных аргументов
function my_settings_field_callback() {
// Код для заполнения поля формой
echo '<input type="text" name="my_settings_field" value="' . esc_attr( get_option( 'my_settings_field' ) ) . '" />';
}
add_action( 'admin_init', 'my_settings_field_init' );
function my_settings_field_init() {
add_settings_section(
'my_settings_section',
'My Settings Section',
'my_settings_section_callback',
'general'
);
add_settings_field(
'my_settings_field',
'My Settings Field',
'my_settings_field_callback',
'general',
'my_settings_section',
array(
'label_for' => 'my_settings_field',
'class' => 'my-settings-field',
)
);
register_setting( 'general', 'my_settings_field' );
}
function my_settings_section_callback() {
// Код для отображения описания секции
echo 'This is my settings section.';
}
Вопросы и ответы
Как добавить новое поле на страницу настроек?
Для добавления нового поля на страницу настроек в WordPress используется функция add_settings_field(). Она позволяет создать новое поле в определенном разделе страницы настроек.
Пример использования функции add_settings_field():
add_settings_field( 'my_field', 'My Field', 'my_field_callback', 'my_settings_page', 'my_section' );
В данном примере мы добавляем новое поле с идентификатором ‘my_field’ и заголовком ‘My Field’ на страницу настроек с идентификатором ‘my_settings_page’ в раздел ‘my_section’.
Как задать уникальный идентификатор для поля?
Уникальный идентификатор для поля задается первым параметром функции add_settings_field(). Этот идентификатор используется в атрибуте ‘id’ тегов для идентификации поля.
Пример:
add_settings_field( 'my_field', 'My Field', 'my_field_callback', 'my_settings_page', 'my_section' );
В данном примере уникальный идентификатор для поля задан как ‘my_field’.
Как задать заголовок для поля?
Заголовок для поля задается вторым параметром функции add_settings_field(). Этот заголовок будет отображаться в качестве метки для поля при выводе.
Пример:
add_settings_field( 'my_field', 'My Field', 'my_field_callback', 'my_settings_page', 'my_section' );
В данном примере заголовок для поля задан как ‘My Field’.
Как задать функцию, которая заполняет поле формой?
Для задания функции, которая заполняет поле формой, используется параметр $callback функции add_settings_field(). Этот параметр должен быть вызываемой функцией, которая будет выводить форму для заполнения поля.
Пример кода:
function my_callback_function() {
// Вывод формы для заполнения поля
}
add_settings_field( 'my_field', 'My Field', 'my_callback_function', 'my_settings_page', 'my_section' );
На какой странице настроек показывать поле?
Для определения страницы настроек, на которой будет показано поле, используется параметр $page функции add_settings_field(). Этот параметр должен быть строкой, содержащей слаг-имя страницы настроек.
Пример кода:
add_settings_field( 'my_field', 'My Field', 'my_callback_function', 'my_settings_page', 'my_section' );
Как задать секцию страницы настроек, в которой показывать поле?
Для определения секции страницы настроек, в которой будет показано поле, используется параметр $section функции add_settings_field(). Этот параметр должен быть строкой, содержащей слаг-имя секции.
Пример кода:
add_settings_field( 'my_field', 'My Field', 'my_callback_function', 'my_settings_page', 'my_section' );
Функция
add_settings_field()позволяет добавить новое поле на страницу настроек в WordPress. Она принимает несколько параметров, включая слаг-имя поля, заголовок поля, функцию заполнения поля формой, страницу настроек и секцию страницы, в которой будет показано поле. Эта функция является полезным инструментом для настройки и управления настройками плагинов и тем в WordPress.
Связанные элементы
- Функция
register_setting(): Регистрирует новую настройку. - Функция
add_settings_section(): Добавляет новую секцию на страницу настроек. - Функция
settings_fields(): Выводит скрытые поля формы для настроек. - Хук
admin_init: Вызывается при инициализации административной части сайта. - Хук
admin_menu: Вызывается при создании меню административной панели. - Хук
admin_enqueue_scripts: Вызывается при подключении скриптов и стилей на странице административной панели.