我正在与Bootstrap 4一起使用高级自定义字段(ACF)。手风琴位于转发器字段中。我想让一个手风琴的最后一个总是打开。 我知道如何始终打开第一项。请参见下面的代码。 因为我不知道会有多少个项目(因为每个CPT可能不同),所以我不能使用$ i == 1或$ i == 2等。
请确保始终打开第一个项目,但请参见下面的代码。
<?php if( have_rows('faq') ): ?>
<div id="accordion" role="tablist">
<?php $i=1; while ( have_rows('faq') ) : the_row(); ?>
<div class="card">
<div class="card-header" role="tab" id="heading-<?php echo $i; ?>">
<h5 class="mb-0">
<a data-toggle="collapse" href="#collapse-<?php echo $i; ?>" aria-expanded="true" aria-controls="collapseOne">
<?php the_sub_field('vraag'); ?>
</a>
</h5>
</div>
<div id="collapse-<?php echo $i; ?>" class="collapse <?php if ($i==1) { echo 'show'; } ?>" role="tabpanel" data-parent="#accordion" aria-labelledby="heading-<?php echo $i; ?>">
<div class="card-body">
<?php the_sub_field('antwoord'); ?>
</div>
</div>
</div>
<?php $i++; endwhile; ?>
</div>
希望有人将m,e指向正确的方向来进行管理。
非常感谢。
答案 0 :(得分:0)
您可以尝试进行ACF循环并将所有值分配给php数组。然后,您可以对数组进行计数,以便获得最后一项的索引。而且,您还可以使用此数组来生成您的手风琴(这样就不会再次运行查询)。
您还可以在ACF上使用count(但是我还没有尝试过,所以我不太确定):
$count = count(get_field('faq'));
# here is an example of your code with count.
<?php if( have_rows('faq') ): ?>
<?php $count = count(get_field('faq')); ?>
<div id="accordion" role="tablist">
<?php $i=1; while ( have_rows('faq') ) : the_row(); ?>
<div class="card">
<div class="card-header" role="tab" id="heading-<?php echo $i; ?>">
<h5 class="mb-0">
<a data-toggle="collapse" href="#collapse-<?php echo $i; ?>" aria-expanded="true" aria-controls="collapseOne">
<?php the_sub_field('vraag'); ?>
</a>
</h5>
</div>
<div id="collapse-<?php echo $i; ?>" class="collapse <?php if ($i == $count) { echo 'show'; } ?>" role="tabpanel" data-parent="#accordion" aria-labelledby="heading-<?php echo $i; ?>">
<div class="card-body">
<?php the_sub_field('antwoord'); ?>
</div>
</div>
</div>
<?php $i++; endwhile; ?>
</div>