Функция _navigation_markup() в WordPress: использование и примеры

Функция _NAVIGATION_MARKUP() │ WP 4.1.0

Функция _navigation_markup() помогает обернуть переданные ссылки в разметку для навигации. Эта функция предназначена для использования только внутри ядра WordPress, и не рекомендуется использовать ее в вашем коде.

Используется в

  • get_the_comments_pagination()
  • get_the_comments_navigation()
  • get_the_posts_pagination()
  • get_the_posts_navigation()

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

  • navigation_markup_template

Возвращаемое значение

Возвращает строку с шаблоном навигации.

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

_navigation_markup( $links, $css_class, $screen_reader_text, $aria_label );
  • $links (string) (обязательный) — навигационные ссылки.
  • $css_class (string) — пользовательский класс для элемента nav. По умолчанию: 'posts-navigation'.
  • $screen_reader_text (string) — текст для чтения с экрана для элемента nav. По умолчанию: 'Навигация по записям'.
  • $aria_label (string) — ARIA-метка для элемента nav. По умолчанию: значение $screen_reader_text.

Примеры использования

Пример 1: Получение HTML для навигации

Предположим, что мы получили ссылки для навигации с помощью функции paginate_links() и теперь нам нужно вывести эти ссылки в стандартном формате для пагинации:

// Получаем ссылки пагинации
$links = paginate_links( $args );

if ( $links ) {
    echo _navigation_markup( $links, 'pagination', 'Моя классная навигация' );
}

Пример 2: Изменение шаблона HTML для навигации/пагинации

Допустим, мы хотим изменить 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 ) {
    /*
    Тип базового шаблона:
    
    */

    return '
    ';    
}

Изменения

  • С версии 4.1.0 — функция была введена.
  • С версии 5.3.0 — добавлен параметр aria_label.

Код функции _NAVIGATION_MARKUP

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. */ __( 'Навигация по записям' );
    }
    if ( empty( $aria_label ) ) {
        $aria_label = $screen_reader_text;
    }

    $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 ) );
}

Похожие функции

  • get_next_posts_page_link()
  • get_previous_posts_page_link()
  • get_the_comments_navigation()
  • get_the_posts_navigation()
  • и другие функции, связанные с навигацией и пагинацией.

Эта статья поможет вам лучше понять, как использовать функцию _navigation_markup() в WordPress и как изменять ее поведение с помощью фильтров.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *