Да, это возможно! Вместо использования have_rows
вы можете использовать get_field
. Результатом является массив. Затем вы можете использовать функцию php rand и foreach
для циклического перемещения по массиву.
Проверьте это ACF example
введите описание ссылки здесь для понимания теста.
Я не проверял точный вывод get_field
в примере ниже, но вы поймете, что:)
<?php
$images = get_field( 'logos' );
$images1 = rand( $images );
$images2 = rand( $images );
$images3 = rand( $images );
$images4 = rand( $images );
?>
<div class="logos">
<?php foreach ( $images1 as $image ) : ?>
<div class="img"><a target="_blank" href="<?php echo $image['logo_link']; ?>"><img src="<?php echo $image['logo']['url']; ?>" alt="<?php echo $image['logo']['alt']; ?>"></a></div>
<?php endforeach; ?>
</div>
<div class="logos">
<?php foreach ( $images2 as $image ) : ?>
<div class="img"><a target="_blank" href="<?php echo $image['logo_link']; ?>"><img src="<?php echo $image['logo']['url']; ?>" alt="<?php echo $image['logo']['alt']; ?>"></a></div>
<?php endforeach; ?>
</div>
<div class="logos">
<?php foreach ( $images3 as $image ) : ?>
<div class="img"><a target="_blank" href="<?php echo $image['logo_link']; ?>"><img src="<?php echo $image['logo']['url']; ?>" alt="<?php echo $image['logo']['alt']; ?>"></a></div>
<?php endforeach; ?>
</div>
<div class="logos">
<?php foreach ( $images4 as $image ) : ?>
<div class="img"><a target="_blank" href="<?php echo $image['logo_link']; ?>"><img src="<?php echo $image['logo']['url']; ?>" alt="<?php echo $image['logo']['alt']; ?>"></a></div>
<?php endforeach; ?>
</div>
Или используйте цикл for:
<?php $images = get_field( 'logos' ); ?>
<?php for ( $i = 1; $i <= 4; $i++ ) : $randImages = rand( $images ); ?>
<div class="logos">
<?php foreach ( $randImages as $image ) : ?>
<div class="img"><a target="_blank" href="<?php echo $image['logo_link']; ?>"><img src="<?php echo $image['logo']['url']; ?>" alt="<?php echo $image['logo']['alt']; ?>"></a></div>
<?php endforeach; ?>
</div>
<?php endfor; ?>