Intereting Posts
Программное обеспечение для WordPress Theme и разработки плагинов? Как исключить продукты по тегам из страницы магазина woocommerce? Заблокирована панель администратора после установки HC Custom WP-Admin URL Как установить имя блога? Сайт не отображает переводы Безопасность видео как facebook Пустой <заголовок> на статической домашней странице? Сообщения, созданные в пользовательском типе сообщений, теряются, если публикуются без заголовка Проблема производительности WordPress. Могу ли я его отлаживать? Получить сообщения для настраиваемого типа сообщений с WP_Query Как сохранить статические каталоги в многодозовых поддоменах? Удаление опции сортировки для столбцов на странице списков сообщений Меню с левой стороны не отображается с выпадающим меню 4 отдельных сайта VS multisite 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(); ?>