【问题标题】:Nested conditional in PHP Wordpress loop not workingPHP Wordpress循环中的嵌套条件不起作用
【发布时间】:2015-05-22 11:40:04
【问题描述】:

我对 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 个帖子对其进行测试,而不是用前三个帖子创建一个三栏部分,然后开始下一个部分,我得到了四个单独的部分。可能是微不足道的错误,但我似乎无法弄清楚!

【问题讨论】:

  • 请发布您的输出
  • 请注意0 % 3 === 0,这样您的条件可以简化。
  • True @TomFenech,谢谢。

标签: php wordpress loops conditional


【解决方案1】:

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

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

【讨论】:

  • 感谢您指出错误。有一个额外的“endif”,但删除后它工作正常。
  • @chidumaga 你说得对,我删除它以防万一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 2017-06-01
相关资源
最近更新 更多