在每2个转发器字段ACF周围添加div

时间:2017-05-17 02:35:43

标签: wordpress advanced-custom-fields

我需要在输入的每对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;

2 个答案:

答案 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>