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

时间:2015-03-19 11:19:00

标签: php wordpress loops conditional

我对PHP不太熟悉。我想在WP循环中插入一个条件语句,以便每隔三个帖子创建一个新的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个帖子测试它,而不是用前三个帖子创建一个三列部分,然后开始下一部分,我有四个单独的部分。可能是微不足道的错误,但我似乎无法弄明白!

1 个答案:

答案 0 :(得分:0)

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

除此之外,你还有一个错误:因为你的内部:声明之后没有{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匹配并且条件确实有效,那么您只需关闭并打开一个新部分。