繁体   English   中英

PHP while循环的ODD和Even包装在左列或右列中

[英]PHP while loop ODD and Even wrapped in either the left or right column

我似乎无法正确地做到这一点,基本上我有一个while循环,我希望所有奇数个帖子都包裹在一个名为.split-left的div中,因此1,3,5等将进入该列。 然后,所有偶数帖子都必须放入.split-right div中,所以2、4、6等。

当前,我的循环将第1个帖子放到.split-left div中,然后将第2、4、6个放到左拆分div中,这是不对的。

<!-- SPLIT EFFECT PAGE BUILDER -->
<div class="page-builder split">

<?php if( have_rows('split_effect_page_builder') ): ?>
  <div class="split-left">
  <?php $i = 1; ?>
  <?php while ( have_rows('split_effect_page_builder') ) : the_row(); ?>

    <?php get_template_part('template-parts/page', 'builder'); ?>

    <?php
      if($i % 2 == 0){
        echo '</div><div class="split-right">';
        $i = 0;
      } 
      $i++; 
    ?>

  <?php endwhile; ?>
  </div>
<?php else : ?>

<?php // no layouts found ?>

<?php endif; ?>
</div>
<!-- END SPLIT EFFECT PAGE BUILDER -->

下面的这部分只是带有循环的模板,因此,可以将其视为普通的PHP while循环。

<?php get_template_part('template-parts/page', 'builder'); ?>

似乎没人能帮我解决这个问题,我在Google各处搜索并检查了一些将偶数和奇数帖子分成两列的代码,但是找不到任何参考资料来帮助我解决此问题。

使用For循环,在for循环之间应用if else条件。

<?php if( have_rows('split_effect_page_builder') ): ?>
  <div class="split-left">
  <?php 
  for($i=1;$i<have_rows('split_effect_page_builder');$i++){
  the_row(); ?>

    <?php get_template_part('template-parts/page', 'builder'); ?>

    <?php
      if($i % 2 == 0){
        echo '</div><div class="split-right">';
      } 
      else{
       echo '</div><div class="split-left">';
      }

    ?>
</div>
  <?php } ?>
  </div>

</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM