我正在尝试使用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>
答案 0 :(得分:1)
确保将ACF图像字段更改为&#39;图像阵列&#39;:
<!-- 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;
答案 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;