Функция GET_NEXT_POSTS_LINK() │ WP 2.7.0
Функция get_next_posts_link() позволяет получить ссылку на следующую страницу с записями.
Как это работает
- Функция использует другие функции WordPress:
next_posts()иget_next_posts_page_link(). - Её можно применять вместе с функциями навигации, такими как
next_posts_link()иget_posts_nav_link().
Упрощённое объяснение
Хуки функции
next_posts_link_attributes— позволяет изменять атрибуты ссылки на следующую страницу записей.
Возвращаемое значение
- Функция возвращает строку, содержащую HTML-код ссылки на следующую страницу записей или
null, если такой нет.
Использование
Функция применяется следующим образом:
get_next_posts_link( $label, $max_page );
$label(строка) — текст для ссылки. По умолчаниюnull.$max_page(целое число) — максимальное количество страниц.
Примеры использования
Пример 1: Базовое использование
Пример 2: Кастомный текст ссылки
Пример 3: Кастомный текст и количество страниц
Пример 4: Использование с WP_Query
Добавьте параметр $max_pages, когда создаете цикл с помощью WP_Query. Чтобы получить количество всех страниц, используйте свойство max_num_pages объекта WP_Query:
have_posts() ){
// Цикл
while ( $the_query->have_posts() ){
$the_query->the_post(); // Устанавливаем глобальную переменную $post
the_title(); // Выводим заголовок
}
// Получаем ссылку на следующую страницу с лимитом
echo get_next_posts_link( 'Ранние записи', $the_query->max_num_pages );
echo get_previous_posts_link( 'Новые записи' );
// Очищаем глобальные переменные
wp_reset_postdata();
} else {
echo 'Записи, соответствующие запросу, не найдены.
';
}
?>
Примечания
- Глобальные переменные:
int $paged— текущая страница.WP_Query $wp_query— объект запроса WordPress.
Изменения
- С версии 2.7.0 — добавлена функция.
Код функции
Ниже приведен код функции get_next_posts_link из файла wp-includes/link-template.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;
}
$next_page = (int) $paged + 1;
if ( null === $label ) {
$label = __( 'Следующая страница »' );
}
if ( ! is_single() && ( $next_page <= $max_page ) ) {
$attr = apply_filters( 'next_posts_link_attributes', '' );
return sprintf(
'%3$s',
next_posts( $max_page, false ),
$attr,
preg_replace( '/&([^#])(?![a-z]{1,8};)/i', '&$1', $label )
);
}
}
Теперь вы знаете, как использовать функцию get_next_posts_link() для навигации между записями на вашем сайте WordPress.