我正在创建一个有程序时间表的wordpress页面。我使用先进的自定义字段,让我们轻松地填补部分的一天和删除的东西等。然而,每个块都有自己的可折叠描述和一个href。当我创建重复器的时候它会保持可折叠部件的id不变但这行不通因为它总是打开" description 1 "
我的问题:我如何能应用一个唯一的id(即program1, program2等)到每个中继器循环。我尝试了$counter,如下面的代码所示,但我不确定如何正确地应用它。
<?php
while ( have_rows('day_1') ) : the_row();
$progtime = get_sub_field('prog_time');
$progtitle = get_sub_field('prog_title');
$progimage = get_sub_field('prog_image');
$progsubspeaker = get_sub_field('prog_sub_speaker');
$progsubdescription = get_sub_field('prog_sub_description');
$progsubduration = get_sub_field('prog_sub_duration');
$progsublocation = get_sub_field('prog_sub_location');
$progsubabouttitle = get_sub_field('prog_sub_abouttitle');
$progsubabout = get_sub_field('prog_sub_about');
$progsubabouturl = get_sub_field('prog_sub_abouturl');
$counter = 1;
?>
<!-- PROGRAM 1-->
<div class="panel panel-default">
<!-- Program Heading -->
<div class="panel-heading" role="tab" id="heading1">
<div class="row">
<div class="col-lg-1 col-md-1 col-sm-1">
<p class="date"><?php echo $progtime; ?></p>
</div>
<div class="col-lg-11 col-md-11 col-sm-11">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#Program<?php echo $counter; ?>" aria-expanded="true" aria-controls="Program1">
<?php echo $progtitle; ?>
</a>
</h4>
</div>
</div>
</div>
<div id="Program<?php echo $counter; ?>" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading1">
<!-- Program Content -->
<div class="panel-body">
<div class="row">
<div class="col-lg-2 col-md-2 col-sm-2">
<img class="img-responsive img-circle" src="<?php echo $progimage; ?>" alt="">
</div>
<div class="col-lg-7 col-md-7 col-sm-10">
<p class="speaker-name uppercase"><?php echo $progsubspeaker; ?></p>
<h4><?php echo $progtitle; ?></h4>
<p><?php echo $progsubdescription; ?></p>
<p><i class="fa fa-lg fa-clock-o"></i><span class="small"><?php echo $progsubduration; ?></span></p>
<p><i class="fa fa-lg fa-map-marker"></i> <span class="small"><?php echo $progsublocation; ?></span></p>
</div>
<div class="col-lg-3 col-md-3 col-sm-10">
<h5><?php echo $progsubabouttitle; ?></h5>
<p class="small"><?php echo $progsubabout; ?></p>
<span class="about-speaker"><i class="fa fa-lg fa-globe"></i> <a class="small" href="#"><?php echo $progsubabouturl; ?></a></span>
</div>
</div>
</div>
</div>
</div>
<?php $counter++; ?>
<?php endwhile; ?>
你的问题是$counter在循环中被定义为1,所以每次运行它都会将它设置回等于1。
将$counter = 1移到while语句上方,这应该可以正常工作!
明白了。我在stackoverflow上使用了这个源代码作为解决方案。
我必须在循环之前定义$counter,并在循环中添加$counter++,因此每次循环都会添加+1。