get_next_posts_link() WP 2.7.0

Отримує HTML-посилання на список раніше опублікованих постів у поточному запиті (посилання пагінації).

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

Працює на основі:
next_posts() ,
get_next_posts_page_link()

Хуки з функції

Повертає

Строку|null. HTML-посилання, якщо її вдалося отримати або null.

Використання

get_next_posts_link($label, $max_page);
$label
(рядок)
Текст посилання. За промовчанням “наступна сторінка »” (Next Page »).


Типово: __( ‘Next Page »’ )
$max_page
(число)
Обмеження, кількість сторінок, на яких посилання буде виводитися. За замовчуванням 0 – без обмеження.


За замовчуванням: $wp_query->max_num_pages

Приклади

0

#1 Базове використання

<?php echo get_next_posts_link(); ?>
0

#2 Довільний текст посилання

<?php echo get_next_posts_link('На наступну сторінку'); ?>
0

#3 Довільний текст та кількість сторінок

<?php echo get_next_posts_link('На наступну сторінку', 4); ?>
0

#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>';
}
?>

нотатки

  • Global. int. $paged
  • Global. WP_Query. $wp_query WordPress Query object.

список змін

З версії 2.7.0Введено.

Код get_next_posts_link() WP 6.0.2

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 = (int) $paged + 1;

	if ( null === $label ) {
		$label = __( 'Next Page »' );
	}

	if ( ! is_single() && ( $nextpage <= $max_page ) ) {
		/**
		 * Filters anchor tag atributes для 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( '/&([^#])(?![az]{1,8};)/i', '&$1', $label ) . '</a>';
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *