add_settings_section() WP 2.7.0

Створює новий блок (секцію), де виводяться поля налаштувань. Тобто. в цей блок потім додаються опції за допомогою add_settings_field() .

Такий блок можна побачити на сторінках налаштувань WordPress або плагінів – це групи налаштувань розділені заголовком.

При створенні плагіна, можна просто створити нову секцію в існуючу сторінку налаштувань WordPress, замість того, щоб створювати окрему сторінку налаштувань. Це трохи спростить створення плагіна і позбавить зайвого пункту адміністративного меню. Користувачам зазначте, що плагін налаштовується на звичній сторінці налаштувань WordPress.

Це одна з групи функцій з API налаштувань , що працює у зв’язці з ними.

Хуків немає.

Повертає

null. Нічого не вертає.

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

add_settings_section( $id, $title, $callback, $page );
$id
(рядок) (обов’язковий)
Ідентифікатор секції, яким потрібно “чіпляти” поля до секції. Рядок, який буде використаний для id атрибутів тегів.
$title
(рядок) (обов’язковий)
Заголовок секції.
$callback
(рядок) (обов’язковий)
Функція заповнює секцію описом. Викликається перед виведенням полів.
$page
(рядок) (обов’язковий)

Сторінка, на якій виводитиме секцію.

Повинен збігатися з параметром $page в do_setting_sections($page);

Або може збігатися з параметром $menu_slug з add_submenu_page() .

Зазвичай $page та $menu_slug називаються однаково.

Приклади ярликів сторінок WP: general, reading, writing, discussion, media, і т.д.

Приклади

1

#1 Демо

add_settings_section(
	'eg_setting_section',
	__( 'Example settings section in reading', 'textdomain' ),
	'wpdocs_setting_section_callback_function',
	'reading'
);

/**
 * Settings section display callback.
 *
 * @param array $args Display arguments.
 */
function wpdocs_setting_section_callback_function( $args ) {

	// echo section intro text here

	// id: eg_setting_section
	echo '<p>id:' . esc_html($args['id']). '</p>';

	// title: Example settings section in reading
	echo '<p>title: ' . apply_filters( 'the_title', $args['title'] ) . '</p>';

	// callback: eg_setting_section_callback_function
	echo '<p>callback: '. esc_html($args['callback']). '</p>';
}
1

#2 Приклад використання в ООП вигляді (з класом php)

class custom_setting {

	function __construct() {
		/**
		 * register wp_setting_init до admin_init action hook
		 */
		add_action('admin_init', array($this,'wp_setting_init'));
	}

	function wp_setting_init() {
		// register a new setting for "reading" page
		register_setting('reading', 'page_limit');

		// реєструє новий розділ у "reading" page
		add_settings_section(
			'wp_custom_setting_section',
			'WP Custom Setting Section',
			array($this,'wp_custom_setting_section_cb'),
			'reading'
		);
	}

	/**
	 * callback functions
	 */

	// section content cb
	function wp_custom_setting_section_cb() {
		esc_html_e('Page limit is 10','text-domain');
	}

}

new custom_setting();
0

#3 Ще приклади дивіться

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

нотатки

  • Global. Масив. $wp_settings_sections Storage array all settings sections added to admin pages.

список змін

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

Код add_settings_section() WP 6.0.2

function add_settings_section( $id, $title, $callback, $page ) {
	global $wp_settings_sections;

	if ( 'misc' === $page ) {
		_deprecated_argument(
			__FUNCTION__,
			'3.0.0',
			sprintf(
				/* translators: %s: misc */
				__( 'The "%s" options group has been removed. Use another settings group.' ),
				'misc'
			)
		);
		$page = 'general';
	}

	if ( 'privacy' === $page ) {
		_deprecated_argument(
			__FUNCTION__,
			'3.5.0',
			sprintf(
				/* translators: %s: privacy */
				__( 'The "%s" options group has been removed. Use another settings group.' ),
				'privacy'
			)
		);
		$page = 'reading';
	}

	$wp_settings_sections[ $page ][ $id ] = array(
		'id' => $id,
		'title' => $title,
		'callback' => $callback,
	);
}

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

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