Intereting Posts
Галерея WordPress Permalink Структура Отображение неверно Изображения не загружаются Сохранять форматирование содержимого короткого кода удалите минимальный вес в заказе woocommerce, если выбран способ доставки пользовательская форма поиска с ajax Как не показывать конкретный пост? Повторное использование функций вместо переменных Как настроить разбиение на страницы для настраиваемого цикла на глобальном шаблоне (author.php, tag.php, archive.php?) Как заполнить описание дома? Могу ли я создать шаблон страницы, использовать его один раз, а затем скрыть / удалить параметр, чтобы использовать его снова? Как создать субдомен для пользовательского типа сообщения и связанных с ним пользовательских таксономий Автоматическое заполнение пользовательского поля для публикации post / update Как изменить текст, сгенерированный с помощью <! – more -> Tag Обновление WordPress полностью сломало установку. На главной странице теперь отображается пустая rss-лента Лучший способ контроля версий файлов WordPress?

Разделить цикл wordpress на несколько макетов

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

это довольно просто сделать, используя простой цикл запроса так:

<?php query_posts('showposts=6'); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> // content or anything comes here <?php endwhile; endif; ?> 

однако я пытаюсь «разбить» свою петлю на 2 разных макета:

  1. 2 сообщения с изображением
  2. остальные 4 в другом дизайне, который будет просто показывать название + выдержка + читать дальше

Вот пример, который лучше всего демонстрирует то, что я пытаюсь выполнить: http://img.wordpressask.com/query/split-loop-layout.jpg

В Интернете множество решений, однако некоторые из них слишком сложны, а некоторые не работают в цикле категорий.

Я видел это на многих веб-сайтах и ​​до сих пор не могу найти простой способ сделать это. есть ли у кого-то хорошее решение?

Большое спасибо. Гил

Solutions Collecting From Web of "Разделить цикл wordpress на несколько макетов"

Просто создайте 2 запроса, используя параметр «offset», и разделите их на:

 <?php wp_reset_query(); ?> 

Показать сообщения от 4-го (смещение начинается с 0):

 <?php $query = new WP_Query( 'offset=3' ) ); ?> 

EDIT: Вот пример кода:

 <?php query_posts('offset=0&showposts=2&order=ASC'); ?> <?php if(have_posts()) : while(have_posts()) : the_post(); ?> <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> <?php endwhile; endif; ?> <?php wp_reset_query(); ?> <?php query_posts('offset=2&showposts=4&order=ASC'); ?> <?php if(have_posts()) : while(have_posts()) : the_post(); ?> <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> <?php endwhile; endif; ?> 

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

проверьте, какое сообщение вы в настоящее время $wp_query->current_post через $wp_query->current_post :

 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); // first two post to show both title, excerpt if( 2 > $wp_query->current_post ) : the_title(); the_excerpt(); //else (remaining) show only title else : the_title(); endif; endwhile; endif; ?> 

Вы можете сделать это довольно легко, используя счетчик в своем цикле следующим образом:

 <?php $counter = 1; $myquery = new WP_Query( array( 'posts_per_page' => 6 ) ); while ( $myquery->have_posts() ) : $myquery->the_post(); if($counter == 1) { ?> First post Look Different <?php } else { ?> Rest looks different <?php } $counter++; endwhile; // Reset Post Data wp_reset_postdata(); ?>