ACF引导手风琴最后一首总是打开

时间:2018-12-10 18:40:16

标签: php wordpress advanced-custom-fields

我正在与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指向正确的方向来进行管理。

非常感谢。

1 个答案:

答案 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>