get_next_posts_page_link()WP 2.0.10

Получает URL на список ранее опубликованных постов внутри текущего запроса (ссылка пагинации).

Так как посты обычно сортируются в обратном порядке (поздние посты показываются раньше), эта функция обычно направляет к поздним постам.

Работает на всех страницах кроме is_single(). Т.е. условие is_single() не должно срабатывать.

Работает на основе глобальной переменной global $paged;.

  • Используйте get_previous_posts_page_link(), когда нужно получить ссылку к ранним (последним) постам.
  • Используйте get_next_posts_link(), когда нужно получить готовый HTML на список ранее опубликованных постов.
Работает на основе: get_pagenum_link()
Основа для: get_next_posts_link()
1 раз — 0.0050561 сек (очень медленно) | 50000 раз — 5.91 сек (быстро)

Хуков нет.

Возвращает

Строку|null. URL архива ранее опубликованных постов. Вернет null, если следующей страницы нет.

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

get_next_posts_page_link( $max_page );
$max_page(int)
Сколько всего возможно страниц пагинации. Если указать здесь например 5 и текущая страница пагинации будет 6 или больше, то функция ничего не вернет.
По умолчанию: 0

Примеры

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