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.7.1
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 ); } } }