register_sidebars() WP 2.2.0

Створює вказану кількість панелей віджетів (сайдбарів) одразу.

Функція створена для зручного створення кількох панелей віджетів.

Використовуйте register_sidebar() , коли потрібно створити лише одну панель, або використовуйте цю функцію, вказавши одиницю (1) у першому параметрі.

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

Хуків немає.

Повертає

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

Шаблон використання

$ args = array (
	'name' => 'Sidebar %d',
	'id' => "sidebar",
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget' => '</li>',
	'before_title' => '<h2 class="widgettitle">',
	'after_title' => '</h2>'
);
register_sidebars(2, $ args);

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

register_sidebars($number, $args);
$number
(число)
Скільки панелей створити, вказується число.


За замовчуванням: 1
$args
(рядок/масив)

Параметри для панелей віджетів.

Параметри Можна вказувати як асоціативний масив або рядок.

  • name– Назва панелі. Назви у панелей, що створюються, повинні бути різні, використовуйте %d у назві, яка буде замінена на порядковий номер панелі. Типово ‘Sidebar %d’.

  • id– Ідентифікатор панелі. До кожної наступної після першої панелі буде автоматично додано число порядкового номера. Наприклад, якщо ми будемо створювати 3 панелі і вкажемо в id “sidebar”, то отримаємо: “Sidebar”, “Sidebar-2”, “Sidebar-3”.

  • description– Опис панелі. При створенні кількох сайдбарів одночасно цей параметр не має сенсу і за промовчанням порожній.

  • before_widget– HTML, який буде розташований перед кожним віджетом в панелі.

  • after_widget– HTML, який буде розташований після кожного віджет в панелі.

  • before_title– HTML який буде розташований перед кожним заголовком віджету панелі.

  • after_title– HTML який буде розташований після кожного заголовка віджету панелі.

Також можна вказати параметри register_sidebar() .

За замовчуванням: за замовчуванням

Приклади

0

#1 Реєстрація однієї панелі Аналог функції register_sidebar()

register_sidebars();
0

#2 Реєстрація двох панелей

Цей приклад показує, як зареєструвати 2 панелі з назвами “Foobar 1” та “Foobar 2”:

register_sidebars( 2, ['name'=>'Foobar %d'] );
0

#3 Створимо 2 панелі і помістимо заголовок кожного віджету в тег <h1>:

register_sidebars( 2, ['before_title'=>'<h1>','after_title'=>'</h1>'] );

Теж саме, тільки вкажемо параметри у вигляді рядка:

register_sidebars( 2, "before_title=<h1>&after_title=</h1>" )

нотатки

  • Дивіться: register_sidebar() and is the same here.
  • Global. Масив. $wp_registered_sidebars Нові sidebars є розташовані в цій array by sidebar ID.

список змін

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

Код register_sidebars() WP 6.0.2

function register_sidebars( $number = 1, $args = array() ) {
	global $wp_registered_sidebars;
	$number = (int) $number;

	if ( is_string( $args ) ) {
		parse_str ($ args, $ args);
	}

	for ( $i = 1; $i <= $number; $i++ ) {
		$_args = $args;

		if ($number > 1) {
			if ( isset( $args['name'] ) ) {
				$_args['name'] = sprintf( $args['name'], $i );
			} else {
				/* translators: %d: Sidebar number. */
				$_args['name'] = sprintf( __( 'Sidebar %d' ), $i );
			}
		} else {
			$_args['name'] = isset( $args['name'] ) ? $args['name'] : __('Sidebar');
		}

		// Custom specified ID's are suffixed if they exist already.
		// Automatically generated sidebar names need to be suffixed regardless starting at -0.
		if ( isset( $args['id'] ) ) {
			$_args['id'] = $args['id'];
			$n = 2; // Start at -2 for conflicting custom IDs.
			while ( is_registered_sidebar( $_args['id'] ) ) {
				$_args['id'] = $args['id'] . '-'. $n++;
			}
		} else {
			$ n = count ($ wp_registered_sidebars);
			do {
				$_args['id'] = 'sidebar-' . ++$n;
			} while (is_registered_sidebar($_args['id']));
		}
		register_sidebar($_args);
	}
}

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

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