Как сделать пагинацию для элементов custom post type на странице page

Вывод всех записей custom post type review без пагинации:

<?php 
$args = array( 'post_type' => 'review', 'posts_per_page' => '999' );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>

<?php the_content(); ?>

<?php 
endwhile; 
wp_reset_query(); ?>

Вывод записей custom post type review с пагинацией на страницах архивов (index.php):

<?php 
global $query_string;
query_posts($query_string.'&post_type=review&posts_per_page=10');
if(have_posts()) : while(have_posts()) : the_post(); ?>

<?php the_content(); ?>

<?php 
endwhile;
wp_pagenavi();
endif;
wp_reset_query(); ?>

Обычная пагинация срабатывает при размещении на страницах архивов или на Главной странице, но как вывести пагинацию на страницах page.

Вариант 1:

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 'paged' => $paged ,'post_type' => 'review', 'posts_per_page' => '10' );

$wp_query = new WP_Query( $args );
while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>

<?php the_content(); ?>

<?php 
endwhile; 
wp_pagenavi();
wp_reset_postdata(); ?>

Вариант 2 (Более предпочтителен, если на страницах есть вывод других циклов):

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 'paged' => $paged ,'post_type' => 'review', 'posts_per_page' => '10' );

$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>

<?php the_content(); ?>

<?php 
endwhile; 
wp_pagenavi( array( 'query' => $loop ) );
wp_reset_postdata(); ?>

Варианты кода с пагинацией предоставил Algiz.

Что делать с письмом от Google «Googlebot не может получить доступ к файлам CSS и JS на сайте»

28 июля 2015 года на почту начали приходить сообщения от Google Search Console Team <sc-noreply@google.com> …

Как защитить сайт на CMS WordPress от взлома

WordPress — это удобная блог-платформа для публикации статей и управления ими, на которой базируется огромное…

Сайт завис при обновлении плагина, теперь не работает и высвечивает сообщение «Сайт ненадолго закрыт на техническое обслуживание. Зайдите через минуту.»

При обновлении плагинов или движка сайта может возникнуть проблема, когда скрипту не хватит времени на…

Добавляем аудиозаписи в плеер HTML5 MP3 Player with Playlist Free (WordPress plugin)

Добавляем аудиозаписи в плеер HTML5 MP3 Player with Playlist Free, на тот момент, когда вы…

9 комментариев

Ольга

Огромное человеческое спасибо!!! 3 дня билась над этой проблемой вывода пагинации. Спасибо, спасибо, спасибо!!!

Александр

Доброго времени суток! Мне кажется у вас ошибка в начале «Вывод всех записей custom post type review без пагинации:» 'posts_per_page' => '999' для выбора всех записей используется значение «-1».

Я уже не помню, но, вроде, возникали какие-то проблемы со значением «-1», нужно пробовать.

не пашет более, при вызове функции wp_pagenavi обрывает поток выдачи

Должен же быть установлен плагин WP-PageNavi или что-то неправильно делаешь.

Серегй

Сделал все как во втором примере, пагинация появилась, то зациклилась на 1 странице. Т.е. при переходе на 2-ю или другую, все равно остаётся на 1-й.

Пробуйте код из 3-го или 4-го примера.

Григорий

Как вы решили проблему с 404й страницей? При переходе на страницу пагинации (2,3, неважно), ВП отдает 404 страницу.
У меня выводится cpt на page

После создания таксономий нужно обязательно зайти в настройки Постоянных ссылок (просто в админке в Настройках) и нажать «Сохранить изменения», чтобы обновились ЧПУ.

Ответить