WordPress как на ладони
wordpress jino

get_next_posts_link() WP 2.7

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

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

Является основой для: get_posts_nav_link(), get_the_posts_navigation(), next_posts_link()
Работает на основе: next_posts()
Хуки из функции:
Возвращает

HTML-ссылку если её удалось получить или null.

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

get_next_posts_link( $label, $max_page );
$label(строка)
Текст ссылки. По умолчанию "следующая страница »" (Next Page »).
По умолчанию: __( 'Next Page »' )
$max_page(число)
Ограничение, количество страниц на которых ссылка будет выводиться. По умолчанию 0 - без ограничения.
По умолчанию: $wp_query->max_num_pages

Примеры

#1 Базовое использование

<?php echo get_next_posts_link(); ?>

#2 Произвольные текст ссылки

<?php echo get_next_posts_link('На следующую страницу'); ?>

#3 Произвольный текст и количество страниц

<?php echo get_next_posts_link('На следующую страницу', 4); ?>

#4 Использование вместе с произвольным циклом WP_Query

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

<?php
// определим текущую страницу пагинации
// используйте параметр 'page' вместо paged на главной странице, если она статическая
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

// запрос: выводим посты из категории 1
$the_query = new WP_Query( 'cat=1&paged=' . $paged ); 

if ( $the_query->have_posts() ){

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

	// get_next_posts_link() с ограничением страниц (второй параметр)
	echo get_next_posts_link( 'Ранние записи', $the_query->max_num_pages );
	echo get_previous_posts_link( 'Новые записи' );

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

} else {  
	echo '<p>Не найдено постов, подходящих под запрос.</p>';
}
?>

Код get_next_posts_link: wp-includes/link-template.php VER 4.9.8

<?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;

	$nextpage = intval($paged) + 1;

	if ( null === $label )
		$label = __( 'Next Page &raquo;' );

	if ( !is_single() && ( $nextpage <= $max_page ) ) {
		/**
		 * Filters the anchor tag attributes for the next posts page link.
		 *
		 * @since 2.7.0
		 *
		 * @param string $attributes Attributes for the anchor tag.
		 */
		$attr = apply_filters( 'next_posts_link_attributes', '' );

		return '<a href="' . next_posts( $max_page, false ) . "\" $attr>" . preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $label) . '</a>';
	}
}

Cвязанные функции

Из метки: link ссылка (HTML тег A)

Еще из раздела: Архивы

2 коммента
Здравствуйте, !     Войти . Зарегистрироваться