Расширенные настраиваемые поля Гибкое содержимое с множественным крахом начальной загрузки (аккордеон)

Я использую Гибкий Контент ACF, чтобы разрешить несколько аккордеонов на одной странице. Проблема для меня — подсчет целых чисел. С каждым новым аккордеоном он снова начинает считать секции (‘# collapse- #’). Я не слишком разбираюсь в PHP.

Мой код возвращает это:

Аккордеон 1

  • Свернуть 1
  • Свернуть 2
  • Свернуть 3

Аккордеон 2

  • Свернуть 1
  • Свернуть 2
  • Свернуть 3

Но мне нужно это напечатать это:

Аккордеон 1

  • Свернуть 1
  • Свернуть 2
  • Свернуть 3

Аккордеон 2

  • Свернуть 4
  • Свернуть 5
  • Свернуть 6

Мой код до сих пор:

<?php if( have_rows('content') ): ?>
<?php $j=1; while ( have_rows('content') ) : the_row(); ?>
<?php if( get_row_layout() == 'accordion' ): ?>
<?php if( have_rows('sections') ): ?>

<div class="panel-group" id="accordion-<?php echo $j; ?>" role="tablist" aria-multiselectable="true">
<?php $i=1; while ( have_rows('sections') ) : the_row(); ?>

<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading-<?php echo $i; ?>">
<h2 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion-<?php echo $j; ?>" href="#collapse-<?php echo $i; ?>" aria-expanded="true" aria-controls="collapseOne">
<?php the_sub_field('question'); ?>
</a>
</h2>
</div>

<div id="collapse-<?php echo $i; ?>" class="panel-collapse collapse <?php if ($i==1) { echo 'in'; } ?>" role="tabpanel" aria-labelledby="heading-<?php echo $i; ?>">
<div class="panel-body">
<?php the_sub_field('answer'); ?>
</div>
</div>
</div>

<?php $i++; endwhile; ?>
</div>
<?php endif; ?>
<?php endif; ?>
<?php $j++; endwhile; ?>
<?php else : endif; ?>

0

Решение

Я выяснил решение, основанное на Kalen Johnson’s Сделки рЕПО.

<?php if( have_rows('content') ): ?>

<?php $j=1; while ( have_rows('content') ) : the_row(); ?>

<?php if( get_row_layout() == 'accordion' ): ?>

<?php if( have_rows('sections') ): ?>

<div class="panel-group" id="accordion-<?php echo $j; ?>" role="tablist" aria-multiselectable="true">

<?php $i=1; while ( have_rows('sections') ) : the_row(); ?>

<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading-<?php echo $i; ?>">
<h2 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion-<?php echo $j; ?>" href="#collapse-<?php echo $j; ?>-<?php echo $i; ?>" aria-expanded="true" aria-controls="collapseOne">
<?php the_sub_field('question'); ?>
</a>
</h2>
</div>

<div id="collapse-<?php echo $j; ?>-<?php echo $i; ?>" class="panel-collapse collapse <?php if ($i==1) { echo 'in'; } ?>" role="tabpanel" aria-labelledby="heading-<?php echo $i; ?>">
<div class="panel-body">
<?php the_sub_field('answer'); ?>
</div>
</div>

</div>
<?php $i++; endwhile; ?>
</div>

<?php endif; ?>
<?php endif; ?>

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

<?php else : endif; ?>
0

Другие решения

Других решений пока нет …