_navigation_markup() WP 4.1.0

Обертає передані посилання навігації/пагінації у html шаблон.

Використовується для стандартного виведення посилань навігації/пагінації у функціях: the_posts_navigation() .

Ця функція має корисний хук navigation_markup_template , використовуючи який можна змінити шаблон виведення блоку (див. приклад).

Ця функція вважається внутрішньою для використання самим ядром . Не рекомендується використовувати цю функцію у своєму коді.

Хуки з функції
_navigation_markup( $links, $class, $screen_reader_text );
$links
(рядок) (обов’язковий)
Посилання навігації.
$class
(рядок)
Додаткові класи до головного блоку
<nav>. Класи додадуться до наявного класу
navigation.


За замовчуванням: ‘posts-navigation’
$screen_reader_text
(рядок)
Назва блоку навігації під час читання з екрана (для роботів, що читають код).


Типово: __( ‘Posts navigation’ )

Приклади

0

#1 Отримаємо блок навігації

Допустимо ми отримали посилання навігації за допомогою paginate_links() і тепер нам потрібно вивести ці посилання у стандартному форматі пагінації:

// Отримуємо посилання пагінації
$links = paginate_links($args);

if ( $links ) {
	echo _navigation_markup( $links, 'pagination', 'Моя крута навігація');
}
0

#2 Зміна шаблону блоку навігації/пагінації

Допустимо нам потрібно змінити виведення HTML у функціях: the_posts_navigation() , потрібно видалити заголовок H2. Для цього використовуємо хук 'navigation_markup_template':

add_filter('navigation_markup_template', 'my_navigation_template', 10, 2);
function my_navigation_template( $template, $class ){
	/*
	Вид базового шаблону:
	<nav class="navigation %1$s" role="navigation">
		<h2 class="screen-reader-text">%2$s</h2>
		<div class="nav-links">%3$s</div>
	</nav>
	*/

	return '
	<nav class="navigation %1$s" role="navigation">
		<div class="nav-links">%3$s</div>
	</nav>    
	';
}

список змін

З версії 4.1.0Введено.
З версії 5.3.0Added aria_label parameter.

Код _navigation_markup() WP 6.0.2

function _navigation_markup( $links, $class = 'posts-navigation', $screen_reader_text = '', $aria_label = '' ) {
	if ( empty( $screen_reader_text ) ) {
		$screen_reader_text = __( 'Posts navigation' );
	}
	if (empty($aria_label)) {
		$aria_label = $screen_reader_text;
	}

	$template = '
	<nav class="navigation %1$s" aria-label="%4$s">
		<h2 class="screen-reader-text">%2$s</h2>
		<div class="nav-links">%3$s</div>
	</nav>';

	/**
	 * Filters navigation markup template.
	 *
	 * Note: Тлумачний HTML-метал повинен зберігати specifiers for navigation
	 * class (%1$s), screen-reader-text value (%2$s), placement of the navigation
	 * links (%3$s), і ARIA label text if screen-reader-text не fit that (%4$s):
	 *
	 * <nav class="navigation %1$s" aria-label="%4$s">
	 * <h2 class="screen-reader-text">%2$s</h2>
	 * <div class="nav-links">%3$s</div>
	 *</nav>
	 *
	 * @ Since 4.4.0
	 *
	 * @param string $template The default template.
	 * @param string $class class passed by the calling function.
	 * @return string Navigation template.
	 */
	$template = apply_filters( 'navigation_markup_template', $template, $class );

	return sprintf( $template, sanitize_html_class( $class ), esc_html( $screen_reader_text ), $links, esc_html( $aria_label ) );
}

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

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