ACF odd/even中继器
ACF odd/even repeater
我正在尝试使用 ACF 转发器字段创建一个两列元素。唯一的事情是我试图交替它,以便两列中的内容切换 left/right 取决于行是偶数还是奇数。
输出类似于:
Row 1: Image (left column), Description (right column)
Row 2: Description (left column), Image (right column)
Row 3: Image (left column), Description (right column)
Row 4: Description (left column), Image (right column)
.
.
.
我是这样循环的:
<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>
确保将 ACF 图像字段更改为 'Image Array':
ACF Image Field
<!-- 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 -->
如果有人正在寻找最简单的答案(要在 odd/even 中划分行),我们可以使用 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;
我正在尝试使用 ACF 转发器字段创建一个两列元素。唯一的事情是我试图交替它,以便两列中的内容切换 left/right 取决于行是偶数还是奇数。
输出类似于:
Row 1: Image (left column), Description (right column)
Row 2: Description (left column), Image (right column)
Row 3: Image (left column), Description (right column)
Row 4: Description (left column), Image (right column)
.
.
.
我是这样循环的:
<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>
确保将 ACF 图像字段更改为 'Image Array':
ACF Image Field
<!-- 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 -->
如果有人正在寻找最简单的答案(要在 odd/even 中划分行),我们可以使用 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;