Я не слишком знаком с PHP. Я хочу вставить условный оператор в цикл WP, чтобы для каждого третьего поста создавался новый div и пост вставлялся в этот div. Вот код, который у меня есть:
<?php $x = 0; ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php if (($x == 0) || ($x % 3 == 0)) ?>
<div class="section group">
<div class="col span_1_of_3"> //column is 1/3 of the page
<?php the_content(); ?>
</div>
</div>
<?php $x += 1; ?>
<?php endwhile; else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
Я тестирую это с 4 постами, и вместо того, чтобы создать один раздел с тремя колонками с первыми тремя постами и затем начать следующий раздел, я получаю четыре отдельных раздела. Потенциально тривиальная ошибка, но я не могу понять это!
Вам нужно немного изменить свою логику, так как теперь вы показываете содержимое, а также открытие и закрытие вашего раздела в одном блоке.
Помимо этого у вас есть ошибка: как у вас нет :
или же {
после вашего внутреннего if
Заявление стало пустым утверждением.
Вам нужно что-то вроде:
<div class="section group">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php if ($x > 0 && $x % 3 === 0): ?>
^ very important
</div>
<div class="section group">
<?php endif; ?>
<div class="col span_1_of_3"> //column is 1/3 of the page
<?php the_content(); ?>
</div>
<?php $x += 1; ?>
<?php endwhile; else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
</div>
Теперь вы только закрываете и открываете новый раздел, если ваш внутренний if
соответствует, и условие на самом деле работает.
Других решений пока нет …