do_settings_sections() WP 2.7.0

Виводить на екран усі блоки опцій, що стосуються вказаної сторінки налаштувань в адмін-панелі.

Примітка: функція виведе заголовки секцій у тегу H3 та поля форми у таблиці.

Функція працює у зв’язку з іншими функціями API налаштувань .

Працює на основі:
do_settings_fields()

Хуків немає.

Повертає

null. Виводить на екран HTML код блоків із полями форми.

Використання

do_settings_sections($page);
$page
(рядок) (обов’язковий)
Ідентифікатор сторінки адмін-панелі, на якій потрібно вивести блоки опцій. Повинен збігатися з параметром
$page з
add_settings_section($id, $title, $callback, $page) .

Приклади

0

#1 Виведення секцій налаштувань на сторінці налаштувань

Припустимо, що ми зареєстрували нові опції, додали блок та поля до цього блоку. Тепер нам потрібно вивести ці поля на сторінці налаштувань плагіна в адмін-панелі, тоді використовуємо цю функцію:

<div class="wrap">  
	<?php screen_icon(); ?>  
	<h2>Налаштування плагіна Primer</h2>  

	<form action="options.php" method="POST">  
		<?php settings_fields( 'option_id'); ?>
		<?php do_settings_sections( 'primer_page' ); ?>
		<?php submit_button(); ?>  
	</form>  
</div>

Повний приклад використання дивіться на сторінці API налаштувань .

нотатки

  • Global. Масив. $wp_settings_sections Storage array all settings sections added to admin pages.
  • Global. Масив. $wp_settings_fields Спільний array of settings fields та info про свої pages/sections.

список змін

З версії 2.7.0Введено.

Код do_settings_sections() WP 6.0.2

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['title'] ) {
			echo "<h2>{$section['title']}</h2>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 '<table class="form-table" role="presentation">';
		do_settings_fields( $page, $section['id'] );
		echo '</table>';
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *