我需要在输入的每对ACF中继器字段周围添加一个div。 我有这段代码可以完成每三个字段的工作。每次我更改数字时,它都会使下一个div ID成为前一个ID的子项。 任何建议都会很棒!感谢
// check if the repeater field has rows of data
if( have_rows('services') ):
// loop through the rows of data
// add a counter
$count = 0;
$group = 0;
while ( have_rows('services') ) : the_row();
// vars
$teacher_bio = get_sub_field('service_title');
$teacher_name = get_sub_field('service_information');
$teacher_image = get_sub_field('icon');
if ($count % 3 == 0) {
$group++;
?>
<div id="services-<?php echo $group; ?>" class="cf group-<?php echo $group; ?>">
<?php
}
?>
<div class="service">
<img src="<?php the_sub_field('icon'); ?>" />
<p><?php echo $teacher_name; ?></p>
<?php echo $teacher_bio; ?>
</div><!-- .teacher -->
<?php
if ($count % 3 == 2) {
?>
</div><!-- #services -->
<?php
}
$count++;
endwhile;
else :
// no rows found
endif;
答案 0 :(得分:0)
您可以使用自定义jquery轻松完成此操作。
答案 1 :(得分:0)
你的模数函数不正确。使用% 2
,因为您要检查每两个循环。在起始div使用0
,在结束div使用1
。
我为你创建了一个简单的例子:
<?php
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$count = 0;
foreach ($arr as &$value) {
if ($count % 2 == 0) {
echo '<div>';
}
echo $value;
if ($count % 2 == 1) {
echo '</div>';
}
$count++;
}
结果:
<div>12</div><div>34</div><div>56</div><div>78</div><div>910</div>