WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

_navigation_markup()WP 4.1.0

Оборачивает переданные ссылки навигации/пагинации в html шаблон.

Используется для стандартного вывода ссылок навигации/пагинации в функциях: the_posts_pagination() и the_posts_navigation().

В этой функции есть полезный хук navigation_markup_template, используя который можно изменить шаблон вывода блока (см. пример).

Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.

Хуки из функции

Возвращает

Строку. HTML шаблон блока навигации.

Использование

_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_pagination(), 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.0 Added the aria_label parameter.

Код _navigation_markup() WP 6.5.2

function _navigation_markup( $links, $css_class = 'posts-navigation', $screen_reader_text = '', $aria_label = '' ) {
	if ( empty( $screen_reader_text ) ) {
		$screen_reader_text = /* translators: Hidden accessibility 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 the navigation markup template.
	 *
	 * Note: The filtered template HTML must contain specifiers for the navigation
	 * class (%1$s), the screen-reader-text value (%2$s), placement of the navigation
	 * links (%3$s), and ARIA label text if screen-reader-text does not 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 $css_class The class passed by the calling function.
	 * @return string Navigation template.
	 */
	$template = apply_filters( 'navigation_markup_template', $template, $css_class );

	return sprintf( $template, sanitize_html_class( $css_class ), esc_html( $screen_reader_text ), $links, esc_attr( $aria_label ) );
}
6 комментариев
    Войти