使用ACF中继器字段,我试图显示评级,使用空圆圈和实心圆圈。这是五分之一的评级。
我希望通过迭代一个类名,让repeater字段填充在圆圈中,如下所示:
<?php for($i=1; $i<=get_sub_field(\'rating\'); $i+=1)
if( $i <= get_sub_field(\'rating\') ) {
echo \'<li class="graph empty \' . \'fill-\' . $i . \'"></li>\';
} else {
echo \'<li class="graph empty"></li>\';
}
?>
本质上,如果我告诉repeater填充3个圆圈,那么PHP应该计算为以下HTML:
<li class="graph empty fill-1"></li>
<li class="graph empty fill-2"></li>
<li class="graph empty fill-3"></li>
<li class="graph empty"></li>
<li class="graph empty"></li>
实际结果是:
<li class="graph empty fill-1"></li>
<li class="graph empty fill-2"></li>
<li class="graph empty fill-3"></li>
这是有道理的,因为数据库只有3个值,我告诉它遍历所有值。我只是不知道如何让它在找到值的同时迭代类,然后删除类填充-直到它达到5的限制。
在sudo代码中,我希望能够告诉while循环:
//while there are the_rows()
//iterate the class name "fill-"
//once you have found all the rows
//only insert the class name "graph empty" until 5 is reached
以下是我的HTML和PHP:
<?php if( have_rows(\'program_skills\') ) :
while( have_rows(\'program_skills\') ) : the_row(); ?>
<div class="skills-wrapper">
<div class="col-xs-6">
<p><?php the_sub_field(\'heading\'); ?></p>
</div>
<div class="col-xs-6">
<div class="skills-graph">
<ul>
<?php for($i=1; $i<=get_sub_field(\'rating\'); $i+=1)
if( $i <= get_sub_field(\'rating\') ) {
echo \'<li class="graph empty \' . \'fill-\' . $i . \'"></li>\';
} else {
echo \'<li class="graph empty"></li>\'; //Attempt to display graph empty for the remaining li\'s until the count = 5.
}
?>
</ul>
</div>
</div>
</div>
<?php endwhile;
endif;?>
我真的被困在这个问题上了,谢谢你能给我的任何帮助。如有任何问题,请进一步澄清,我很乐意回答。