Вложенный условный цикл в PHP WordPress не работает

Я не слишком знаком с 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 постами, и вместо того, чтобы создать один раздел с тремя колонками с первыми тремя постами и затем начать следующий раздел, я получаю четыре отдельных раздела. Потенциально тривиальная ошибка, но я не могу понять это!

2

Решение

Вам нужно немного изменить свою логику, так как теперь вы показываете содержимое, а также открытие и закрытие вашего раздела в одном блоке.

Помимо этого у вас есть ошибка: как у вас нет : или же { после вашего внутреннего 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 соответствует, и условие на самом деле работает.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector