Intereting Posts
Значение метаданных wp не равно нулю Как использовать таблицу базы данных costum для пользовательского типа сообщения LESS компилятор для WordPress Вставка содержимого в скрипт с расширенными настраиваемыми полями WordPress не отправляет подтверждение по электронной почте новым зарегистрированным пользователям Пользовательская категория для сообщений через XMLRPC Вызов функции сохранения из кнопки «отправить» Переопределить индекс с помощью настраиваемой страницы PHP Множественная петля, нарушающая боковую панель Форма регистра конечного пользователя Автоматическое заполнение пользовательского поля в настраиваемом типе сообщений с сообщением WordPress Shortcode в страницах или файлах tempate для пользовательского типа сообщения заставить jQuery загружать в голову Существует ли возможный способ разделения плагинов на другие каталоги (WPMU) Показывать статус таксономии типа пользовательского сообщения, который соответствует настраиваемому полю

Попытка разделить запрос на разделы по шесть

У меня есть запрос, который возвращает все пользовательские сообщения, я пытаюсь разделить все сообщения на разделы по шесть, а затем обернуть их в элемент списка.

В настоящее время его выполнение, как оно должно, но ломается, когда оно доходит до 12 сообщений, их в общей сложности 40 сообщений. Я не знаю, что может кому-то помочь.

<?php $args = array( 'post_type' => 'portfolio', 'posts_per_page' => -1 ); $loop = new WP_Query( $args ); while ( $loop->have_posts()) : $loop->the_post(); ?> <?php if($count === 1 ): echo "<li>"; endif; ?> <?php if($count % 7 == 0 ): echo "<li>"; endif; ?> <div class="portfolio"> <?php the_post_thumbnail('portfolio-large'); ?> <div><?php the_excerpt(); ?></div> <a href="<?php the_permalink(); ?>" style="color:#fff;">more info</a> </div> <?php if($count % 6 == 0 ): echo "</li>"; endif; ?> <?php endwhile; wp_reset_query(); ?> 

Я думаю, что ваш подход правильный, но вы столкнулись с проблемой «posts_per_page».

В вашем запросе используйте 'posts_per_page = -1', чтобы возвращать все сообщения (предполагая, что это то, что вы хотите). Я предполагаю, что на вашем сайте в настоящее время установлено 12 сообщений на странице в настройках -> область чтения.

http://codex.wordpress.org/Class_Reference/WP_Query#Pagination_Parameters

Не могли бы вы использовать свойство offset в запросе, например

  $query = new WP_Query( 'posts_per_page=6' ) ); $query2 = new WP_Query( 'posts_per_page=6offset=6' ) ); 

В основном вы делаете 2 запроса, 6 сообщений в запросе 1, а затем в запросе 2 делаете 6 сообщений снова, но добавляете смещение 6, которое пропускает первые 6 сообщений, чтобы они не повторялись.

Я выяснил, что у меня есть wp_reset_query(); в середине моей петли, которая удаляла счетчик смещения, также я изменил

 <?php if($count === 1 ): echo "<li>"; endif; ?> <?php if($count % 7 == 0 ): echo "<li>"; endif; ?> 

to <?php if($count % 6 == 0 ): echo "<li>"; endif; ?> <?php if($count % 6 == 0 ): echo "<li>"; endif; ?>

который исправил мою проблему.