Функция выводит ссылку на страницу со следующими, то есть опубликованными ранее, постами.
Работает только внутри цикла WordPress, смотрите мой видеоурок по циклам.
- Если находимся на последней странице (с самыми старыми постами), то ничего не выводит.
- Если вам нужно получить ссылку и записать в переменную PHP, то воспользуйтесь get_next_posts_link().
- Обычно выводит ссылку на более старые посты, потому что по умолчанию они сортируются в обратном хронологическом порядке.
- Если вам нужно вывести пагинацию с номерами страниц, обратите внимание на paginate_links().
- Не будет работать (без ошибок), если в php.ini включен
mysql.trace_mode
. Если у вас нет доступа к файлу php.ini, то попробуйте в functions.php добавить строкуini_set( 'mysql.trace_mode', 0 );
next_posts_link( $label = null, $max_page = 0 )
- $label
- (строка) Текст ссылки. По умолчанию
Next Page »
(Следующая страница →
). - $max_page
- (целое) Максимальное количество страниц в пагинации. По умолчанию используется значение максимального количества страниц из основного цикла
$wp_query->max_num_pages
. Если вы создаёте кастомную пагинацию для своих целей, то этот параметр нужно указать.
Функция ничего не возвращает.
Пример
next_posts_link( 'Туда →' );
Кастомная пагинация для цикла на WP_Query
Подробнее про создание циклов при помощи WP_Query в моём видеоуроке.
// определяем текущую страницу, на которой находимся $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; // запускаем дополнительный цикл $q = new WP_Query( array( 'cat' => 5, 'paged' => $paged ); if ( $q->have_posts() ) : // выводим заголовки постов while ( $q->have_posts() ) : $q->the_post(); the_title( '<h2>', '</h2>' ); endwhile; // в функцию next_posts_link() обязательно передаём max_num_pages. next_posts_link( 'Туда →', $q->max_num_pages ); previous_posts_link( '← Сюда' ); wp_reset_postdata(); endif;
Источник: Блог Миши Рудрастых