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

# DO_SETTINGS_SECTIONS() │ WP 2.7.0

Функция do_settings_sections() выводит все секции настроек, добавленные на конкретную страницу настроек.

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

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

Функция не возвращает ничего (null).

## Использование

Чтобы использовать do_settings_sections(), передайте в неё название страницы, где хотите отобразить секции настроек:

```php
do_settings_sections( $page );

Параметры

  • $page (строка, обязательный) — название страницы, секции настроек которой вы хотите отобразить.

Примеры

Пример 1: Вывод секций настроек на странице настроек плагина

Предположим, вы зарегистрировали новые параметры, добавили блок и поля в этот блок. Теперь нужно отобразить эти поля на странице настроек вашего плагина в админ-панели. Для этого используйте следующий код:

Настройки плагина Primer

Для полного примера использования API настроек, смотрите [документацию по API настроек].

Заметки

  • Глобальная переменная. Массив. $wp_settings_sections — массив, в котором хранятся все секции настроек, добавленные на страницы администратора.
  • Глобальная переменная. Массив. $wp_settings_fields — массив, в котором хранятся поля настроек и информация о их страницах и секциях.

История изменений

  • С версии 2.7.0 — была введена.

Код функции

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


function do_settings_sections( $page ) {
global $wp_settings_sections, $wp_settings_fields;

if ( ! isset( $wp_settings_sections[ $page ] ) ) {
    return;
}

foreach ( (array) $wp_settings_sections[ $page ] as $section ) {
    if ( '' !== $section['before_section'] ) {
        if ( '' !== $section['section_class'] ) {
            echo wp_kses_post( sprintf( $section['before_section'], esc_attr( $section['section_class'] ) ) );
        } else {
            echo wp_kses_post( $section['before_section'] );
        }
    }

    if ( $section['title'] ) {
        echo "

{$section['title']}

n"; } if ( $section['callback'] ) { call_user_func( $section['callback'], $section ); } if ( ! isset( $wp_settings_fields ) || ! isset( $wp_settings_fields[ $page ] ) || ! isset( $wp_settings_fields[ $page ][ $section['id'] ] ) ) { continue; } echo ''; do_settings_fields( $page, $section['id'] ); echo ''; if ( '' !== $section['after_section'] ) { echo wp_kses_post( $section['after_section'] ); } }

}

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

При работе с API настроек вы можете использовать следующие функции:

  • add_settings_error()
  • add_settings_field()
  • add_settings_section()
  • do_settings_fields()
  • get_settings_errors()
  • register_setting()
  • settings_errors()
  • settings_fields()
  • unregister_setting()

Эта структурированная статья объясняет, как использовать функцию do_settings_sections() в WordPress, и помогает понять ее назначение и как применять с примерами кода.

Leave a Reply

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