WordPress как на ладони
wordpress jino

do_settings_fields() WP 2.7

Выводит на экран поля опций, относящихся к указанной секции.

Функция работает в связке с другими функциями API настроек.

Заметка: обычно, вместо этой функции используется do_settings_sections(), чтобы вывести поля опций связанные с секцией.

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

Хуков нет.

Возвращает

Выводит на экран 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 ).

Примеры

#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>

Код do settings fields: wp-admin/includes/template.php WP 4.8.2

<?php
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>';
	}
}

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

Из раздела: API Настроек

do_settings_fields Комментариев нет

Здравствуйте, !

Ваш комментарий