Получение ссылки на следующую страницу записей с функцией get_next_posts_link()

Функция GET_NEXT_POSTS_LINK() │ WP 2.7.0

Функция get_next_posts_link() позволяет получить ссылку на следующую страницу с записями.

Как это работает

  • Функция использует другие функции WordPress: next_posts() и get_next_posts_page_link().
  • Её можно применять вместе с функциями навигации, такими как next_posts_link() и get_posts_nav_link().

Упрощённое объяснение

Хуки функции

  • next_posts_link_attributes — позволяет изменять атрибуты ссылки на следующую страницу записей.

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

  • Функция возвращает строку, содержащую HTML-код ссылки на следующую страницу записей или null, если такой нет.

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

Функция применяется следующим образом:

get_next_posts_link( $label, $max_page );
  • $label (строка) — текст для ссылки. По умолчанию null.
  • $max_page (целое число) — максимальное количество страниц.

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

Пример 1: Базовое использование

Пример 2: Кастомный текст ссылки

Пример 3: Кастомный текст и количество страниц

Пример 4: Использование с WP_Query

Добавьте параметр $max_pages, когда создаете цикл с помощью WP_Query. Чтобы получить количество всех страниц, используйте свойство max_num_pages объекта WP_Query:

have_posts() ){
    // Цикл
    while ( $the_query->have_posts() ){
        $the_query->the_post(); // Устанавливаем глобальную переменную $post
        the_title(); // Выводим заголовок
    }

    // Получаем ссылку на следующую страницу с лимитом
    echo get_next_posts_link( 'Ранние записи', $the_query->max_num_pages );
    echo get_previous_posts_link( 'Новые записи' );

    // Очищаем глобальные переменные
    wp_reset_postdata();
} else {
    echo '

Записи, соответствующие запросу, не найдены.

'; } ?>

Примечания

  • Глобальные переменные:
    • int $paged — текущая страница.
    • WP_Query $wp_query — объект запроса WordPress.

Изменения

  • С версии 2.7.0 — добавлена функция.

Код функции

Ниже приведен код функции get_next_posts_link из файла wp-includes/link-template.php.

function get_next_posts_link( $label = null, $max_page = 0 ) {
    global $paged, $wp_query;

    if ( ! $max_page ) {
        $max_page = $wp_query->max_num_pages;
    }

    if ( ! $paged ) {
        $paged = 1;
    }

    $next_page = (int) $paged + 1;

    if ( null === $label ) {
        $label = __( 'Следующая страница »' );
    }

    if ( ! is_single() && ( $next_page <= $max_page ) ) {
        $attr = apply_filters( 'next_posts_link_attributes', '' );

        return sprintf(
            '%3$s',
            next_posts( $max_page, false ),
            $attr,
            preg_replace( '/&([^#])(?![a-z]{1,8};)/i', '&$1', $label )
        );
    }
}

Теперь вы знаете, как использовать функцию get_next_posts_link() для навигации между записями на вашем сайте WordPress.

Leave a Reply

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