@DanilChekh

Как правильно написать цикл постов wordpress?

Подскажите есть структура блоков которые чередуются как плитки, и данные берут со страницы постов,как мне правильно записать цикл вывода ,ведь если я два блока впихну в один цикл то они будут чередоваться , но подгружать одинаковую информацию из админки? вот код

<?php $args = array(
  'post_type' => 'glavnaya',
  'posts_per_page' => -1
);
$glavnaya= new WP_Query( $args  );

?>

<?php if( $glavnaya->have_posts() ) : while ( $glavnaya->have_posts() ) : $glavnaya->the_post(); ?>
     <div class="work" id="work">
      <div class="photo" id="photo"> 
    <?php echo the_content();?>
      </div>
          <div class="above" id="above">
текст с поста
  <span class="town">текст с поста</span>
          </div>
</div>

<div class="work">
      <div class="above">
  Дизайн мужской спальни<br><br>

 <span class="town">Текст с поста</span>
          </div>
      <div class="photo">
<?php echo the_content();?>
      </div>
</div>  
<?php endwhile; else: ?>
  <h3>Записей нет</h3>
<?php endif; ?>


вот сайт чтобы наглядно увидеть, ответ вроде рядом,но в голову лезут какие то дополнительные счетчики i, проверка массива постов на четность,не могу сформулировать
Сайт borisov.cloud
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
может есть еще какие то варианты реализации?чтобы можно было в цикле вордпресса вывести все

Самое простое, что приходит в голову — добавить флаг и его переключать. Что-то типа:
<?php $args = array(
  'post_type' => 'glavnaya',
  'posts_per_page' => -1
);
$glavnaya= new WP_Query( $args  );

?>

<?php $flag = true; if( $glavnaya->have_posts() ) : while ( $glavnaya->have_posts() ) : $glavnaya->the_post(); ?>
<?php if($flag) : ?>
Блок с картинкой после текст
<?php else : ?>
Блок с картинкой перед текстом
<?php endif; ?>
<?php $flag = !$flag; endwhile; else: ?>
  <h3>Записей нет</h3>
<?php endif; ?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы