Разное расположение для n-ых рядов ACF REPEATER - PullRequest
0 голосов
/ 16 мая 2019

Я использую повторитель ACF для отображения изображений, я хочу добиться компоновки, чтобы 1 - 2 - 3 элемента шли с сеткой col-lg-4, а 4-5-6-7 - с сеткой col-lg-3 и и так, повторяя этот макет для всех элементов

Я пытался использовать, но это чтобы получить 3 элемента в 1 div

В основном мой макет будет

first row 3x col-lg-4
second row 4x col-lg-3
third row 3x col-lg-4
fourth row 4x col-lg-3 


<?php 

// check if the repeater field has rows of data
if( have_rows('gallery_repeater') ):
    // loop through the rows of data

    // add a counter
    $count = 0;
    $group = 0;

    while ( have_rows('gallery_repeater') ) : the_row(); 
      // vars
      $teacher_bio = get_sub_field('image');
      if ($count % 3 == 0) {
        $group++;
        ?>
          <div id="teachers-<?php echo $group; ?>" class="cf group-<?php echo $group; ?>">
        <?php 
      }
      ?>
      <div class="teacher">
        <img src="<?php the_sub_field('image'); ?>" />

        <?php echo $teacher_bio; ?>
      </div><!-- .teacher -->
      <?php 
        if ($count % 3 == 2) {
          ?>
            </div><!-- #teachers -->
          <?php 
        }
        $count++;
      endwhile;
  else :
    // no rows found
  endif;

?>

1 Ответ

0 голосов
/ 16 мая 2019

Привет Пожалуйста, проверьте код ниже для справки:

$gallery_repeater = get_field('gallery_repeater');
foreach (array_chunk($gallery_repeater, 7) as $key => $value) {
    foreach ($value as $k => $val) {
        $class = $k < 3 ? 'col-lg-3' : 'col-lg-4';
        echo '<div class="'.$class.'"> <img src="'.$val['image'].'" />'.$val['teacher_bio'].'</div>';
    }
}
...