get_posts_nav_link() WP 2.8.0

Отримує посилання на попередню та наступну сторінку записів на сторінці архіву (категорії/мітки/автора).

Використовується для вставки посилань пагінації (< назад – вперед >) для сторінок архівів.

Коли необхідно вивести результат на екран, використовуйте posts_nav_link()

Працює на основі:
get_next_posts_link()
Основа для:
posts_nav_link()

Хуків немає.

Повертає

Строку. HTML посилань навігації на сторінках архівів.

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

$links_html = get_posts_nav_link( $args );
$args
(рядок/масив)

Параметри для створення навігаційних посилань.

  • sep (string)
    Текст між посиланнями – роздільник.
    За замовчуванням: ‘-‘

  • prelabel (string)
    Текст (анкор) посилання для попереднього посту.
    Типово: __(‘« Previous Page’)

  • nxtlabel (string)
    Текст (анкор) посилання для наступного посту.
    Типово: __(‘Next Page »’)

За замовчуванням: array()

Приклади

0

#1 Демонстрація того, що виводить функція

echo $links_html = get_posts_nav_link();

Виведе:

<a href="посилання">« Попередня сторінка</a> — <a href="посилання">Наступна сторінка »</a>
0

#2 Розмістимо посилання посередині і передамо параметри

Для цього обернемо їх у DIV та вкажемо йому властивість text-align:center

<?php
$links_html = get_posts_nav_link(array(
	'sep' => ' . ',
	'prelabel' => 'Попередня сторінка',
	'nxtlabel' => 'Наступна сторінка'
));

echo "<div style="text-align:center;">$links_html</div>";
?>
0

#3 Замість текстів: «Попередня сторінка», «Наступна сторінка», можна використовувати зображення

$links_html = get_posts_nav_link(array(
	'sep' => ' . ',
	'prelabel' => '<img src="' . get_stylesheet_directory_uri() . '/images/prev.jpg" />',
	'nxtlabel' => '<img src="' . get_stylesheet_directory_uri() . '/images/next.jpg" />'
));

нотатки

  • Global. WP_Query. $wp_query WordPress Query object.

список змін

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

Код get_posts_nav_link() WP 6.0.2

function get_posts_nav_link( $args = array() ) {
	global $wp_query;

	$ return = '';

	if ( ! is_singular() ) {
		$defaults = array(
			'sep' => ' — ',
			'prelabel' => __( '« Previous Page' ),
			'nxtlabel' => __( 'Next Page »' ),
		);
		$ args = wp_parse_args ($ args, $ defaults);

		$max_num_pages = $wp_query->max_num_pages;
		$paged = get_query_var( 'paged');

		// Лише має sep if there's both prev and next results.
		if ( $paged < 2 || $paged >= $max_num_pages ) {
			$args['sep'] = '';
		}

		if ( $max_num_pages > 1 ) {
			$return = get_previous_posts_link( $args['prelabel'] );
			$return .= preg_replace( '/&([^#])(?![az]{1,8};)/i', '&$1', $args['sep'] );
			$return .= get_next_posts_link( $args['nxtlabel'] );
		}
	}
	return $return;

}

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

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