Функция add_settings_section()
в WordPress используется для добавления новой секции настроек на страницу админ-панели. Она является частью Settings API и помогает организовать настройки, выводимые в админ-панели. Эта функция добавляет новый раздел, который будет содержать поля настроек, созданные с помощью add_settings_field()
.
add_settings_section(
string $id,
string $title,
callable $callback,
string $page,
array $args = array()
)
Параметры
- $id (string) – Идентификатор секции. Используется в атрибуте
id
HTML-тегов. - $title (string) – Заголовок секции, который будет отображаться в админ-панели.
- $callback (callable) – Функция обратного вызова, которая выводит описание или другой контент для секции.
- $page (string) – Ярлык страницы настроек, на которой будет отображена секция.
- $args (array) – Дополнительные аргументы (добавлены в WordPress 6.1):
before_section
– HTML-контент, который будет выведен перед секцией.after_section
– HTML-контент после секции.section_class
– Класс для HTML-разметки секции.
Пример 1: Базовая реализация
// Добавляем новую секцию на страницу настроек "reading"
add_settings_section(
'my_custom_section', // Идентификатор секции
__('Моя секция настроек', 'textdomain'), // Заголовок
'my_section_callback', // Функция обратного вызова
'reading' // Страница настроек
);
/**
* Функция для вывода описания секции.
*
* @param array $args Аргументы секции.
*/
function my_section_callback( $args ) {
echo '<p>' . __('Описание для моей секции настроек', 'textdomain') . '</p>';
}
Пример 2: Использование класса
Если вы предпочитаете объектно-ориентированный подход, вот пример использования:
class My_Custom_Settings {
public function __construct() {
// Регистрируем инициализацию настроек
add_action('admin_init', array($this, 'register_settings'));
}
public function register_settings() {
// Регистрируем новую секцию на странице "writing"
add_settings_section(
'my_oop_section',
__('Секция для OOP', 'textdomain'),
array($this, 'section_callback'),
'writing'
);
}
public function section_callback( $args ) {
echo '<p>' . __('Текст для OOP-секции', 'textdomain') . '</p>';
}
}
new My_Custom_Settings();
Пример 3: Дополнительные аргументы
С версии WordPress 6.1 можно передавать дополнительные аргументы для секции:
add_settings_section(
'advanced_section',
__('Расширенная секция', 'textdomain'),
'advanced_section_callback',
'general', // Страница настроек "General"
array(
'before_section' => '<div class="custom-section-class">',
'after_section' => '</div>',
'section_class' => 'my-section-class'
)
);
function advanced_section_callback( $args ) {
echo '<p>' . __('Описание для расширенной секции.', 'textdomain') . '</p>';
}
Заключение
Функция add_settings_section()
помогает структурировать настройки на страницах админ-панели WordPress, позволяя добавлять новые разделы с настройками. Она легко интегрируется с другими функциями Settings API, такими как add_settings_field()
и do_settings_sections()
, предоставляя разработчикам гибкость при настройке админ-интерфейсов для плагинов или тем.