Intereting Posts
Добавление javascript в заголовок темы MetroMagazine Выберите только сообщение id и meta с помощью WP_Query Отображение страниц показывает 404 после определенного количества страниц Пользовательский обход шаблона для пейджера для index.php Расширьте регулярное выражение PHP для покрытия атрибутов «srcset» и «style» Что генерируемые классы и идентификаторы, которые всегда используются во всех темах? Я хочу, чтобы с помощью электронной почты не было имени пользователя wordpress front end Отменить регистрацию Nav Menu с возвратом? Нужно элегантное решение для объявления значения двух переменных на основе количества сообщений Email Неактивный пользователь на WordPress if (is_page (** PAGE ID **)) не работает Как использовать языковые файлы в плагинах? Страница сообщений WordPress для фильтрации и сортировки клиентов вместе с фильтром категории Должен ли я очистить кеш-память для кэширования? Необходимо вручную зарегистрировать пользователя, отправить пароль и получить идентификатор пользователя

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

Итак, что я сделал, создается пользовательский тип сообщений «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' ); 

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