我试图为这个使用引导构建的灵活内容传送带的每个实例添加一个计数器。我用while语句尝试了多种计数方法。什么是正确的计数方式,以便我可以为每个旋转木马添加唯一的ID?
此版本不输出任何内容。移动上面的while语句会断开页面。不包装while不算什么。我已经测试了计数器while( have_rows(\'slides\') )
, 工作,但不是这里需要的。
这个旋转木马可以很好地使用静态ID。作为一种解决方法,目前,我已经用不同的ID创建了重复的模板文件,但无论如何都没有效率。
<div id="work" class="oc-content-container">
<?php
if( have_rows(\'work_flexible_fields\') ):
while ( have_rows(\'work_flexible_fields\') ) : the_row();
if( get_row_layout() == \'content_editor\' ): the_sub_field(\'content_editor\');
elseif ( get_row_layout() == \'carousel_1\' ):
$cCounter = 1; //start counter
?>
<section id="carousel" class="text-center center-block">
<?php while ( have_rows(\'carousel_1\') ) { $cCounter++; //attempt to count instances of this flexible content module
if( have_rows(\'slides\') ) {
$num = 0;
$active = \'active\'; ?>
<div id="carouselId<?php echo $cCounter; ?>" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<?php
while( have_rows(\'slides\') ) : the_row(); ?>
<li data-target="#carouselId<?php echo $cCounter; ?>" data-slide-to="<?php echo $num; ?>" class="<?php echo $active; ?>"></li>
<?php
$num++;
$active = \'\';
endwhile; ?>
</ol>
<div class="carousel-inner">
<?php $active = \'active\'; ?>
<?php while( have_rows(\'slides\') ) : the_row();
$image = get_sub_field(\'image\');
$mainText = get_sub_field(\'main_text\');
$subText = get_sub_field(\'sub_text\');
?>
<div class="carousel-item <?php echo $active; ?>">
<img class="center-block" src="<?php echo $image; ?>" />
<div class="carousel-caption d-none d-block">
<h5><?php echo $mainText; ?></h5>
</div>
</div>
<?php
$active = \'\';
endwhile; ?>
</div>
</div>
<?php } } //close while statement ?>
</section>
<?php endif;
endwhile;
else :
endif;
?>
</div>