do_settings_fields

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

Функция работает в связке с другими функциями 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. Выводим зарегистрированные поля

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

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

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *