PHP Wordpress 循环中的嵌套条件不起作用

Nested conditional in PHP Wordpress loop not working

我不太熟悉PHP。我想在 WP 循环中插入一个条件语句,以便每三分之一 post 创建一个新的 div,并将 post 插入到 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 posts 测试它,而不是用前三个 posts 创建一个三列部分然后开始下一部分,我得到四个单独的部分.可能是微不足道的错误,但我似乎无法弄清楚!

您需要稍微更改您的逻辑,因为现在您要在同一个块中显示内容以及您的部分的打开和关闭。

除此之外,您还有一个错误:由于您在内部 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 匹配并且条件确实有效,您就可以关闭并打开一个新部分。