Как выводить разную структуру постов в одном цикле wordpress?

276
21 апреля 2017, 22:09

Добрый, подскажите как реализовать вывод постов с разными калссами и разной структурой в одном цикле, не понимаю как это сделать. Например:

          <!-- начало цикла, основная обертка -->
          <div class="module__blog__row row">
            <!-- первый вид поста --> 
            <div class="col__50 module__blog__item__content">
              <img src='' />
              <div class="module__blog__item module__blog__item_absolute">
                <span class="module__blog__date"> дата </span>
                <a class="module__blog__link" href=""> линк </a>
                <a class="module__blog__more" href=""> линк </a>
              </div>
            </div>
            <!-- обертка для других 2ух видов постов -->
            <div class="col__50">
              <div class="row">
                <!-- второй вид поста --> 
                <div class="col__50">
                  <img class="module__blog__img" />
                </div>
                <!-- третий вид поста --> 
                <div class="col__50">
                  <div class="module__blog__item module__blog__item_padding">
                    <span class="module__blog__date"> дата </span>
                    <a class="module__blog__link" href=""> линк </a>
                    <a class="module__blog__more" href=""> линк </a>
                  </div>
                </div>
              </div>
              <!-- четвертый вид поста --> 
              <div class="module__blog__twitter">
                <p> какойто текст </p>
                <a href=""> линк </a>
              </div>
            </div>
          </div>
          <!-- конец цикла, пвотор --> 

Накидал простой пример разметки, если можно пример как это сделать.

обертка
<div class='wrapper'>
     первый пост
     <div class='post-view-1'>
         <div class='post'></div>
     </div>
     обертка для других постов
     <div class='post-view-wrapper'>
         второй пост
         <div class='post-view-2'>
             <div class='post-2'></div>
         </div>
         третий пост
         <div class='post-view-3'>
             <div class='post-3'></div>
         </div>
         четвертый пост из определенной категории, если это возможно реализовать
         <div class='post-view-4'>
             <div class='post-4'></div>
         </div>
     </div>
</div>
повтор цикла
Answer 1

У вас есть логическая проблема здесь. Вывод будет зависеть от числа (наличия) постов разных видов. Для примера - два случая:

Вид 1 - 10шт, Вид 2 - 1шт, Вид 3 -20шт

Вид 2 - 0шт, Вид 2 - 50шт, Вид 3 - 1 шт

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

Смотреться будет... Странно. Но, если вы все-таки хотите именно это - то вам надо сделать примерно так:

  1. Выборка всех видов постов и размещение данных в массивы $postsA, $postsB, $postsC и т.д.

  2. Цикл по макс. кол-ву:

for ( $i = 0; $i < max( count( $postsA ), count( $postsB ), count( $postsC ) ); $i ++ ) { if ( !empty( $postsA[ $i ] ) ) { //Тут вывод данных поста типа "а" } else { //Тут вывод заглушки, елси посты данного вида кончились } if ( !empty( $postsB[ $i ] ) ) { //Тут вывод данных поста типа "а" } else { //Тут вывод заглушки, елси посты данного вида кончились } if ( !empty( $postsC[ $i ] ) ) { //Тут вывод данных поста типа "а" } else { //Тут вывод заглушки, елси посты данного вида кончились } }

READ ALSO
Почему слеш в конце адресной строки ломает сайт, построенный по принципу единой точки входа?

Почему слеш в конце адресной строки ломает сайт, построенный по принципу единой точки входа?

Реализация по принципу единой точки входа, содержимое адресной строки разбивается $routes = explode('/', $_SERVER['REQUEST_URI']) и результаты передаются в обработчики

330
Advanced Custom Fields, двойное сохранение поля

Advanced Custom Fields, двойное сохранение поля

Подскажите, почему поле из плагина acf сохраняется дважды? Подозреваю, что срабатывает стандартный хук save_post и хук acf/save_post одновременноНужно...

273
Как сделать скрытую переадресацию?

Как сделать скрытую переадресацию?

скажем у меня есть два доменных именни: onecom и two

224
При аплоде картинки microtime дает разные значения

При аплоде картинки microtime дает разные значения

Подскажите нужно сделать имя файла уникальным с помощью microtime и делая

213