ACF奇/偶中继器

时间:2016-10-12 02:55:18

标签: php html wordpress advanced-custom-fields

我正在尝试使用ACF转发器字段创建一个双列元素。唯一的事情是我试图交替这个,以便两列中的内容左/右切换,具体取决于行是偶数还是奇数。

输出结果如下:

  

第1行:图像(左列),描述(右列)

     

第2行:描述(左栏),图像(右栏)

     

第3行:图像(左列),描述(右列)

     

第4行:说明(左栏),图像(右栏)

     

     

     

这是我循环的方式:

<section id="projects" class="container specific-margin-1">
        <div class="row specific-padding-4">
            <div class="container col-lg-12">
                <center><h2>FEATURED PROJECTS</h2></center>
            </div><!-- col-lg-12  --> 
        </div><!-- row  -->

            <!-- Repeater --> 
            <div class="row">
            <?php $row = 0; //<-- set your counter to 0
                        if(get_field('featured_projects')): ?>
            <?php while(has_sub_field('featured_projects')): ?>

                <?php if ($counter % 2 === 0) :?>
                <div class="row">
                    <!-- right column -->
                    <div class="col-lg-9 col-md-8 col-sm-6">
                        <img src="<?php the_sub_field('project_image'); ?>" />
                    </div>

                    <div class="col-lg-3 col-md-4 col-sm-6">
                            <?php the_sub_field('project_details'); ?>
                    </div><!-- right column -->
                </div>

                <?php else: ?>

                <div class="row">
                    <!-- left column -->
                    <div class="col-lg-3 col-md-4 col-sm-6">
                        <?php the_sub_field('project_details'); ?>
                    </div>

                    <div class="col-lg-9 col-md-8 col-sm-6">
                        <img src="<?php the_sub_field('project_image'); ?>" />
                    </div><!-- left column -->
            </div>
            <?php endif; ?>

            <?php $row++; endwhile; ?>

            <?php endif; ?>
        </div><!-- Repeater -->
    </section>

2 个答案:

答案 0 :(得分:1)

确保将ACF图像字段更改为&#39;图像阵列&#39;:

ACF Image Field

&#13;
&#13;
<!-- Repeater -->
<div class="row">
  <?php $i=0 ; if(get_field( 'featured_projects')): ?>
  <?php while(has_sub_field( 'featured_projects')): $i++; ?>
  <?php $image=get_sub_field( 'project_image'); ?>
  <div class="row">
    <!-- right column -->
    <div class="col-lg-9 col-md-8 col-sm-6">
      <?php if (($i % 2)==0 ): ?>
      <?php the_sub_field( 'project_details'); ?>
      <?php else: ?>
      <img src="<?php echo $image['url']; ?>" />
      <?php endif; ?>
    </div>

    <div class="col-lg-3 col-md-4 col-sm-6">
      <?php if (($i % 2)==0 ): ?>
      <img src="<?php echo $image['url']; ?>" />
      <?php else: ?>
      <?php the_sub_field( 'project_details'); ?>
      <?php endif; ?>
    </div>
    <!-- right column -->
  </div>

  <?php endwhile; ?>

  <?php endif; ?>
</div>
<!-- Repeater -->
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如果有人正在寻找最简单的答案(将行以奇/偶数划分),我们可以使用get_row_index()函数检查当前行。

代码格式应如下:

while( have_rows('featured_projects') ): the_row();

    if( get_row_index() % 2 == 0 ){
        
        // this is an even row
        
    } else {
        
        // this is an odd row
        
    }

endwhile;