- Описание функции
- Примеры использования
- Регистрация настроек для группы опций
- Сохранение значения опции
- Санитизация значения опции
- Включение данных в REST API
- Вопросы и ответы
- Как зарегистрировать новую настройку?
- Какой должен быть тип данных для зарегистрированной настройки?
- Как описать данные, связанные с зарегистрированной настройкой?
- Какой должна быть функция обратного вызова для санитизации значения настройки?
- Как включить данные, связанные с настройкой, в REST API?
- Как установить значение по умолчанию для зарегистрированной настройки?
- Как получить значение зарегистрированной настройки?
- Как изменить значение зарегистрированной настройки?
- Как удалить зарегистрированную настройку?
- Связанные элементы
Описание функции
Функция register_setting() регистрирует настройку и ее данные в WordPress. Она позволяет определить новую настройку и указать, как она должна быть обработана и сохранена. Регистрация настройки позволяет WordPress автоматически обрабатывать данные, связанные с этой настройкой, и предоставлять удобный интерфейс для их изменения.
Использование
register_setting( string $option_group, string $option_name, array $args = array() ) Функция register_setting() принимает три параметра: $option_group, $option_name и $args. Она регистрирует настройку с указанными параметрами.
$option_group(обязательный): Название группы настроек. Должно соответствовать допустимому ключу опции. По умолчанию допустимые ключи опций включают ‘general’, ‘discussion’, ‘media’, ‘reading’, ‘writing’ и ‘options’.$option_name(обязательный): Название опции, которую нужно очистить и сохранить.$args(необязательный): Данные, используемые для описания настройки при ее регистрации.type(строка): Тип данных, связанных с этой настройкой. Допустимые значения: ‘string’, ‘boolean’, ‘integer’, ‘number’, ‘array’ и ‘object’.description(строка): Описание данных, связанных с этой настройкой.sanitize_callback(вызываемая функция): Функция обратного вызова, которая очищает значение опции.show_in_rest(логическое значение или массив): Определяет, должны ли данные, связанные с этой настройкой, быть включены в REST API. При регистрации сложных настроек этот аргумент может быть массивом с ключом ‘schema’.default(любой тип): Значение по умолчанию при вызове функцииget_option(). По умолчанию:array().
<?php
/**
* Регистрация настройки "my_custom_setting".
*
* @param string $option_group Название группы настроек.
* @param string $option_name Название опции.
* @param array $args Дополнительные параметры настройки.
*/
register_setting( 'my_settings_group', 'my_custom_setting', array(
'type' => 'string',
'description' => 'Описание настройки',
'sanitize_callback' => 'my_custom_sanitize_function',
'show_in_rest' => true,
'default' => 'default_value'
) );
/**
* Функция обратного вызова для очистки значения опции.
*
* @param mixed $value Значение опции.
* @return mixed Очищенное значение опции.
*/
function my_custom_sanitize_function( $value ) {
// Очистка значения опции.
return sanitize_text_field( $value );
}
?> В этом примере мы регистрируем настройку с названием «my_custom_setting» в группе настроек «my_settings_group». Мы указываем, что тип данных этой настройки — строка, и добавляем описание. Также мы указываем функцию обратного вызова my_custom_sanitize_function(), которая будет использоваться для очистки значения опции. Мы также включаем данные этой настройки в REST API и устанавливаем значение по умолчанию «default_value».
Примеры использования
Регистрация настроек для группы опций
/**
* Register settings for the 'general' option group.
*/
register_setting( 'general', 'my_option', array(
'type' => 'string',
'description' => 'My option description',
'sanitize_callback' => 'sanitize_text_field',
'show_in_rest' => true,
'default' => 'Default value',
) );
Сохранение значения опции
/**
* Save the value of the 'my_option' option.
*/
function save_my_option() {
$value = $_POST['my_option'];
update_option( 'my_option', $value );
}
add_action( 'admin_post_save_my_option', 'save_my_option' );
Санитизация значения опции
/**
* Sanitize the value of the 'my_option' option.
*
* @param mixed $value The value to sanitize.
* @return mixed Sanitized value.
*/
function sanitize_my_option( $value ) {
// Sanitize the value here.
return $value;
}
add_filter( 'sanitize_option_my_option', 'sanitize_my_option' );
Включение данных в REST API
/**
* Include the 'my_option' data in the REST API response.
*
* @param array $response The REST API response.
* @return array Modified REST API response.
*/
function include_my_option_in_rest( $response ) {
$my_option = get_option( 'my_option' );
$response['my_option'] = $my_option;
return $response;
}
add_filter( 'rest_prepare_settings', 'include_my_option_in_rest' );
Вопросы и ответы
Как зарегистрировать новую настройку?
Для регистрации новой настройки в WordPress используется функция register_setting(). Она принимает три параметра: $option_group, $option_name и $args.
$option_group — это имя группы настроек, которое должно соответствовать допустимому ключу опции. В WordPress уже предопределены некоторые допустимые ключи опций, такие как ‘general’, ‘discussion’, ‘media’, ‘reading’, ‘writing’ и ‘options’.
$option_name — это имя опции, которую нужно очистить и сохранить.
$args — это массив данных, используемых для описания настройки при ее регистрации. В массиве можно указать тип данных, описание, функцию очистки значений опции и другие параметры.
register_setting( 'general', 'my_option', array(
'type' => 'string',
'description' => 'My custom option',
'sanitize_callback' => 'sanitize_text_field',
'show_in_rest' => true,
'default' => 'default value'
) );
Какой должен быть тип данных для зарегистрированной настройки?
Для зарегистрированной настройки можно указать следующие типы данных: ‘string’, ‘boolean’, ‘integer’, ‘number’, ‘array’ и ‘object’.
register_setting( 'general', 'my_option', array(
'type' => 'string',
) );
Как описать данные, связанные с зарегистрированной настройкой?
Для описания данных, связанных с зарегистрированной настройкой, можно использовать параметр description. В этом параметре можно указать описание данных, которые прикреплены к данной настройке.
register_setting( 'general', 'my_option', array(
'description' => 'My custom option',
) );
Какой должна быть функция обратного вызова для санитизации значения настройки?
Функция обратного вызова для санитизации значения настройки должна быть определена в параметре sanitize_callback при регистрации настройки с помощью функции register_setting(). Эта функция должна принимать один аргумент — значение настройки, и возвращать санитизированное значение.
Пример:
function sanitize_callback_example($value) {
// Санитизация значения настройки
$sanitized_value = sanitize_text_field($value);
return $sanitized_value;
}
register_setting('general', 'example_setting', array(
'sanitize_callback' => 'sanitize_callback_example',
));
Как включить данные, связанные с настройкой, в REST API?
Для включения данных, связанных с настройкой, в REST API, необходимо установить параметр show_in_rest в значение true при регистрации настройки с помощью функции register_setting().
Пример:
register_setting('general', 'example_setting', array(
'show_in_rest' => true,
));
Как установить значение по умолчанию для зарегистрированной настройки?
Значение по умолчанию для зарегистрированной настройки можно установить с помощью параметра default при регистрации настройки с помощью функции register_setting().
Пример:
register_setting('general', 'example_setting', array(
'default' => 'default_value',
));
Как получить значение зарегистрированной настройки?
Для получения значения зарегистрированной настройки в WordPress используется функция get_option(). Эта функция принимает один параметр — имя настройки, и возвращает ее значение.
$option_value = get_option( 'option_name' );
Как изменить значение зарегистрированной настройки?
Для изменения значения зарегистрированной настройки в WordPress используется функция update_option(). Эта функция принимает два параметра — имя настройки и новое значение.
update_option( 'option_name', 'new_value' );
Как удалить зарегистрированную настройку?
Для удаления зарегистрированной настройки в WordPress используется функция unregister_setting(). Эта функция принимает два параметра — имя группы настроек и имя настройки.
unregister_setting( 'option_group', 'option_name' );
Функция
register_setting()в WordPress используется для регистрации настроек и их данных. Она позволяет задать тип данных, описание, функцию санитизации и другие параметры для настройки. Зарегистрированные настройки могут быть получены с помощью функцииget_option(), изменены с помощью функцииupdate_option()и удалены с помощью функцииunregister_setting().
Связанные элементы
- Функция
add_settings_section(): регистрирует новую секцию на странице настроек. - Функция
add_settings_field(): регистрирует новое поле на странице настроек. - Функция
do_settings_sections(): выводит все зарегистрированные секции на странице настроек. - Функция
do_settings_fields(): выводит все зарегистрированные поля на странице настроек. - Функция
get_settings_errors(): возвращает массив с ошибками, связанными с настройками. - Функция
settings_fields(): выводит скрытые поля формы настроек для защиты от подделки. - Функция
settings_errors(): выводит ошибки, связанные с настройками. - Хук
admin_init: вызывается при инициализации административной части сайта. - Хук
admin_menu: вызывается при создании меню административной части сайта. - Хук
admin_enqueue_scripts: вызывается при подключении скриптов и стилей в административной части сайта.