get_next_posts_page_link()
Получает URL на список ранее опубликованных постов внутри текущего запроса (ссылка пагинации).
Так как посты обычно сортируются в обратном порядке (поздние посты показываются раньше), эта функция обычно направляет к поздним постам.
Работает на всех страницах кроме is_single(). Т.е. условие is_single() не должно срабатывать.
Работает на основе глобальной переменной global $paged;.
- Используйте get_previous_posts_page_link(), когда нужно получить ссылку к ранним (последним) постам.
- Используйте get_next_posts_link(), когда нужно получить готовый HTML на список ранее опубликованных постов.
Хуков нет.
Возвращает
Строку|null. URL архива ранее опубликованных постов. Вернет null, если следующей страницы нет.
Использование
get_next_posts_page_link( $max_page );
- $max_page(int)
- Сколько всего возможно страниц пагинации. Если указать здесь например 5 и текущая страница пагинации будет 6 или больше, то функция ничего не вернет.
По умолчанию: 0
Примеры
#1 Выведем ссылку в своей кнопке
К примеру, у нас есть тип записи "Фигуранты" (figurants) и мы в этом архиве хотим вывести кнопку на следующую страницу пагинации.
Допустим сейчас мы находимся на странице пагинации 2:
<?php if ( $next_url = get_next_posts_page_link( $GLOBALS['wp_query']->max_num_pages ?: 1 ) ): ?> <button class="btn" type="button" data-url="<?= $next_url ?>">Показать еще </button> <?php endif; ?>
Получим:
<button class="btn" type="button" data-url="https://site.example/figurants/page/3/">Показать еще </button>
Заметьте, как сделана проверка. Это нужно для того, что если функции не указать максимальное количество страниц пагинации или указать 0, то она будет считать, что их бесконечное количество и всегда возвращать ссылку, даже если следующей страницы пагинации в действительности нет. При запросах с помощью WP_Query{} (сюда относится и базовый (основной) запрос) в свойстве max_num_pages содержится максимальное количество страниц пагинации, но если страница пагинации всего одна, то там будет 0, нам приходится заменить его на 1, чтобы функция get_next_posts_page_link() отработала корректно.
Заметки
- Global. int. $paged
Список изменений
| С версии 2.0.10 | Введена. |
Код get_next_posts_page_link() get next posts page link WP 6.8.3
function get_next_posts_page_link( $max_page = 0 ) {
global $paged;
if ( ! is_single() ) {
if ( ! $paged ) {
$paged = 1;
}
$next_page = (int) $paged + 1;
if ( ! $max_page || $max_page >= $next_page ) {
return get_pagenum_link( $next_page );
}
}
}