Support

Account

Home Forums ACF PRO Wrap every 3 items, add div after these, then repeat Reply To: Wrap every 3 items, add div after these, then repeat

  • You should first store every 3 items to an array. Each value has 3 items. Then iterate the array to output row and popup.
    Also you should keep ‘container’ out of loop.

    <?php
    $items = [];
    if ( have_rows( 'content' ) ):
    	while ( have_rows( 'content' ) ): the_row();
    		//initiate if is not set
    		$items[ get_row_index() % 3 ] = $items[ get_row_index() % 3 ] ? $items[ get_row_index() % 3 ] : '';
    		$items[ get_row_index() % 3 ] .= '<div class="item">' . get_sub_field( 'name' ) . '</div>';
    	endwhile;
    endif;
    ?>
    <div class="container">
    	<?php foreach ( $items as $item ) {
    		echo '<div class="row">';
    		echo $item;
    		echo '</div>';
    		echo '<div class="popup">';
    		echo $item;
    		echo '</div>';
    	}
    	?>
    </div>