Intereting Posts
Пользовательское поле как пользовательская таксономия? Перебирать все теги и выходные сообщения в алфавитном списке Используйте изображение логотипа более чем 230 пикселей с темой 2013 года Используя версии jQuery, TinyMCE, …? Как создать кнопку формы, которая выполняет функцию? Как захватить аргумент GET на статической странице Создание страниц также служит таксономиями? Или предоставить полные страницы для таксономий? Добавить изображение в сообщении Правильный способ создания собственных шаблонов Enqueue в проекте sass Добавление большего количества текста в сообщение после его публикации Несколько изображений на одной странице вложений Какой крюк выполняется сразу после выполнения wp_query? Можно ли дать пользователю возможность выбрать между двумя отдельными файлами шаблонов для использования в сообщении? Перемещение Sticky Nav Menu Ниже панели инструментов WordPress, когда панель инструментов включена Создание определенных категорий меню

Разрыв петли?

Петли WP широко используются для печати списков сообщений в WordPress:

<?php $loop = new WP_Query( array( 'post_type' => 'ff', 'ff' => 'show_ff', 'orderby' => 'menu_order', 'order' => 'ASC' )); while ( $loop->have_posts() ) : $loop->the_post(); ?> <!-- here we're going to have all posts from show_ff category of ff type. --> <?php endwhile; ?> 

Есть ли способ отображения, например, трех первых сообщений, затем некоторого элемента (div в моем случае) и снова 3 следующих сообщения?

Я знаю, что могу сделать 6 циклов в каждом div, но, возможно, есть другой способ взломать этот код? Может быть, некоторые, если петли внутри цикла while? Вот моя концепция:

 (...) while ( $loop->have_posts() ) : $loop->the_post(); echo '3 first posts'; echo '<div class="special"></div>'; echo '3 last posts'; endwhile; ?> 

Solutions Collecting From Web of "Разрыв петли?"

Я не думаю, что полностью понял, как вы хотите, чтобы это сработало, но если я предполагаю на мгновение, что до тех пор, пока цикл имеет по крайней мере 6 сообщений, вы хотите вставить дополнительную разметку после третьего результата в цикле. ,

пример

Вставьте дополнительную разметку после третьего сообщения, когда текущая итерация имеет не менее 6 сообщений

 <?php if( $loop->have_posts() ) : //$post_count = $loop->found_posts; // <-- think this is the total, corrected below $post_count = $loop->post_count; // should be the result count for the current page $loop_count = 0; while ( $loop->have_posts() ) : $loop->the_post(); $loop_count++; ?> <!-- your regular loop markup, eg. title, content, etc.. --> <?php if( $post_count >= 6 && $loop_count == 3 ) : ?> <!-- extra markup to put in when it's the end of the third post of this loop --> <?php endif; endwhile; endif; ?> 

Таким образом, вы избегаете использования смещения и можете использовать пейджинг, если это необходимо. Я не тестировал код, но я уже приводил множество примеров, подобных этому, просто сообщите мне о каких-либо проблемах, и я перепросмотрю (и проведу) код.

Вы можете ограничить количество сообщений до трех в первом цикле:

  <?php $args = array('showposts' => 3); $the_query = new WP_Query($args); while ($the_query->have_posts()) : $the_query->the_post(); 

Затем покажите свой div и затем снова запустите 3 сообщения с параметром 'offset', чтобы исключить 3 первых:

  $args2 = array('showposts' => 3, 'offset' => 3 ); $the_query = new WP_Query($args2); while ($the_query->have_posts()) : $the_query->the_post(); 

Дополнительная информация в кодексе .