Функция ADD_SETTINGS_SECTION() в WordPress: синтаксис, параметры и примеры использования

Функция ADD_SETTINGS_SECTION() в WordPress

Введение

Функция add_settings_section() позволяет добавить новый раздел на страницу настроек в WordPress. Эта функция является частью API настроек и помогает организовать настройки, делая их более удобными для пользователя. В этой статье мы рассмотрим, как использовать эту функцию и какие параметры она принимает.

Синтаксис

Функция вызывается следующим образом:

add_settings_section( $id, $title, $callback, $page, $args );

Параметры функции

  • $id (string, обязательный): Уникальное имя раздела. Используется для идентификации раздела на странице настроек.
  • $title (string, обязательный): Заголовок раздела, который будет отображаться на странице настроек.
  • $callback (callable, обязательный): ��ункция, которая выводит содержимое вверху раздела. Это может быть любая информация, которую вы хотите показать перед настройками.
  • $page (string, обязательный): Слаг (идентификатор) страницы настроек, на которой будет показан раздел. Стандартные страницы включают general, reading, writing, discussion, media и другие. Вы можете создать свою страницу с помощью функции add_options_page().
  • $args (array, необязательный): Массив аргументов, используемых для создания HTML-контента раздела.

Аргументы $args

По умолчанию $args принимает пустой массив. Вы можете задать дополнительные параметры, такие как:

  • before_section (string): HTML-контент, который будет добавлен перед выводом раздела. Получает имя класса раздела как %s.
  • after_section (string): HTML-контент, который будет добавлен после вывода раздела.
  • section_class (string): Имя класса для раздела.

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

Пример 1: Добавление раздела настроек

Давайте рассмотрим простой пример использования add_settings_section():

add_settings_section(
    'eg_setting_section',
    __( 'Пример раздела настроек', 'textdomain' ),
    'wpdocs_setting_section_callback_function',
    'reading'
);

/**
 * Функция обратного вызова для отображения раздела настроек.
 *
 * @param array $args Аргументы для отображения.
 */
function wpdocs_setting_section_callback_function( $args ) {
    // Здесь выводим текст
    echo '

ID раздела: ' . esc_html( $args['id'] ) . '

'; echo '

Заголовок: ' . apply_filters( 'the_title', $args['title'] ) . '

'; echo '

Функция обратного вызова: ' . esc_html( $args['callback'] ) . '

'; }

В этом примере мы добавили новый раздел с идентификатором eg_setting_section на страницу чтения. Мы также создали функцию для вывода дополнительного текста в разделе.

Пример 2: Использование в ООП

В следующем примере мы покажем, как использовать add_settings_section() в объектно-ориентированном программировании (ООП):

class CustomSetting {

    function __construct() {
        add_action('admin_init', array($this, 'wp_setting_init'));
    }

    function wp_setting_init() {
        // Регистрируем новое поле для страницы "Чтение"
        register_setting('reading', 'page_limit');

        // Регистрируем новый раздел на странице "Чтение"
        add_settings_section(
            'wp_custom_setting_section',
            'Пользовательский раздел настроек',
            array($this, 'wp_custom_setting_section_cb'),
            'reading'
        );
    }

    // Функция обратного вызова для содержимого раздела
    function wp_custom_setting_section_cb() {
        esc_html_e('Лимит страниц: 10', 'text-domain');
    }
}

new CustomSetting();

Здесь мы создали класс CustomSetting, в котором добавлены методы для инициализации и обработки настроек.

Примечания

  • Глобальная переменная: $wp_settings_sections – это массив, который хранит все добавленные разделы настроек на страницах администратора.

Изменения

  • С версии 2.7.0: Функция была разработана.
  • С версии 6.1.0: Добавлен параметр $args для HTML-обертки и имени класса раздела.

Заключение

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

Leave a Reply

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