Intereting Posts
Проблема перенаправляет «блог» на «новости» в WordPress с использованием .htaccess Как я могу создать функцию для получения времени видео YouTube Добавить всплывающее окно подтверждения javascript на ссылку «Переместить в корзину» Отображение тегов, связанных с сообщениями в пользовательском типе сообщений Получение списка пользовательских сообщений автором Сколько времени потребуется, чтобы плагин полностью загрузился в репозиторий WordPress.org? Wp_Schedule_Event каждый день в определенное время Как я могу запустить многоязычный сайт WordPress в двух папках в одной установке? Как добавить значок на определенный палец Ошибки компиляции при компиляции перевода Возвращаемый пользователь Мета текст в качестве ссылок на редактирование сообщений внутри столбцов пользователя Массовое редактирование текста пользовательского отрывка в WordPress Плагин, чтобы требовать входа в Twitter или Facebook перед публикацией комментария Смешанные предупреждения о содержании шрифтов Google Как я могу использовать AJAX с категориями флажков?

Архивная страница … ограничение постов на страницу

Итак, что я сделал, создается пользовательский тип сообщений «testimonials» и установите параметр «имеет архив» в «true» и имеют файл шаблона PHP с именем «archive-testimonials.php».

То, что мне не нужно делать, – это ограничить количество показов только 5, при этом следующий и задний вариант вернется и перейдет к следующему 5. Звучит достаточно просто, но по какой-то причине я не могу заставить его работать.

Вот мой цикл, который показывает мне все 17 условных сообщений:

<?php $loop = new WP_Query( array( 'pagename' => 'testimonials', 'posts_per_page' => -1 ) ); ?> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <div> <h2><?php the_title(); ?></h2> <?php the_content(); ?> </div> <?php endwhile; ?> 

Единственный способ показать все из них вместо 10 – это «posts_per_page» => -1. И даже без этой «posts_per_page» он покажет только 10 из 17 сообщений.

Теперь я попробовал:

 <?php $loop = new WP_Query( array( 'post_type' => 'testimonials', 'posts_per_page' => 5 ) ); ?> <?php previous_posts_link(); ?> &bull; <?php next_posts_link(); ?> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <div> <h2><?php the_title(); ?></h2> <?php the_content(); ?> </div> <?php endwhile; ?> 

Я могу заставить его показать только пять, но у меня нет разбиения на страницы на следующий 5. Я просто открываю «отзывы / страницу / 2 /» и показывает те же пять, что и на предыдущей странице.

Что я делаю не так. Любая помощь приветствуется.

благодаря

Solutions Collecting From Web of "Архивная страница … ограничение постов на страницу"

Не создавайте новый запрос и цикл для изменения сообщений на странице. Добавьте функцию, подключенную к pre_get_posts и pre_get_posts все параметры, которые вы хотите там, до запуска запроса. Это пойдет в файле functions.php вашей темы или в плагине.

 function wpd_testimonials_query( $query ){ if( ! is_admin() && $query->is_post_type_archive( 'testimonials' ) && $query->is_main_query() ){ $query->set( 'posts_per_page', 5 ); } } add_action( 'pre_get_posts', 'wpd_testimonials_query' ); 

Затем в шаблоне вы запускаете обычный цикл, а разбиение на страницы работает так, как ожидалось.