do_settings_fields() WP 2.7.0

Виводить на екран поля опцій, що належать до зазначеної секції.

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

Примітка: зазвичай, замість цієї функції використовується do_settings_sections() , щоб вивести поля опцій, пов’язані з секцією.

Функція схожа на do_settings_sections(), вона також виводить поля для певної сторінки та секції, тільки ці поля не форматуються у табличний вигляд, а виводяться як є.

Основа для:
do_settings_sections()

Хуків немає.

Повертає

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

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

do_settings_fields($page, $section);
$page
(рядок) (обов’язковий)
Ідентифікатор сторінки адмін-панелі (page slug), де потрібно вивести поля форми. Повинен збігатися з параметром $page з


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


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( 'primer_group' ); ?>
		<?php do_settings_fields( 'primer_page' ); ?>
		<?php submit_button(); ?>  
	</form>  
</div>

нотатки

  • Global. Масив. $wp_settings_fields Storage array of settings fields та їхні pages/sections.

список змін

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

Код do_settings_fields() WP 6.0.2

function do_settings_fields( $page, $section ) {
	Global $wp_settings_fields;

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

	foreach ((array) $wp_settings_fields[ $page ][ $section ] as $field ) {
		$class = '';

		if ( ! empty( $field['args']['class'] ) ) {
			$class = 'class="' . esc_attr( $field['args']['class'] ) . '"';
		}

		echo "<tr{$class}>";

		if ( ! empty( $field['args']['label_for'] ) ) {
			echo '<th scope="row"><label for="' . esc_attr( $field['args']['label_for'] ) . '">' . $field['title'] . '</label></th>';
		} else {
			echo '<th scope="row">' . $field['title'] . '</th>';
		}

		echo '<td>';
		call_user_func($field['callback'], $field['args']);
		echo '</td>';
		echo '</tr>';
	}
}

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

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