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

get_posts_nav_link() WP 2.8.0

Получает ссылки на предыдущую и следующую страницы записей на странице архива (категории/метки/автора).

Используется для вставки ссылок пагинации (< назад - вперед >) для страниц архивов.

Когда нужно вывести результат на экран, используйте posts_nav_link()

Используется в: posts_nav_link().
Работает на основе: get_previous_posts_link(), get_next_posts_link()

Хуков нет.

Возвращает

Строку. HTML ссылок навигации по страницам архивов.

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

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

Параметры для создания ссылок навигации.

  • sep (string)
    Текст между ссылок - разделитель.
    По умолчанию: '—'

  • prelabel (string)
    Текст (анкор) ссылки для предыдущего поста.
    По умолчанию: __('« Previous Page')

  • nxtlabel (string)
    Текст (анкор) ссылки для следующего поста.
    По умолчанию: __('Next Page »')

По умолчанию: array()

Примеры

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

echo $links_html = get_posts_nav_link();

Выведет:

<a href="ссылка">« Предыдущая страница</a> — <a href="ссылка">Следующая страница »</a>

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

#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" />'
));

Код get posts nav link: wp-includes/link-template.php VER 4.9.1

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

	$return = '';

	if ( !is_singular() ) {
		$defaults = array(
			'sep' => ' &#8212; ',
			'prelabel' => __('&laquo; Previous Page'),
			'nxtlabel' => __('Next Page &raquo;'),
		);
		$args = wp_parse_args( $args, $defaults );

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

		//only have 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('/&([^#])(?![a-z]{1,8};)/i', '&#038;$1', $args['sep']);
			$return .= get_next_posts_link($args['nxtlabel']);
		}
	}
	return $return;

}

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

Из метки: navigation pagination (навигация пагинация)

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

get_posts_nav_link Комментариев нет

Здравствуйте, !

Ваш комментарий