Случайные изображения без дубликатов (галерея ACF)

У меня есть поле галереи, созданное с помощью дополнительных пользовательских полей. Мой код выплескивает все изображения на странице. Все идет нормально. Я бы хотел, чтобы все изображения загружались случайным образом. Я попытался использовать shuffle () и array_rand (). Это работает отлично, оно загружает мои изображения в случайном порядке. Моя проблема – это дубликаты. У меня есть несколько изображений, и я вижу, что загружаются повторяющиеся изображения.

Мой текущий код:

<?php while ( have_posts() ) : the_post(); ?> <?php $images = get_field('gallery'); // thumbnail if( $images ): ?> <ul id="container" class="tiles-wrap animated"> <?php array_rand($images); ?> //I tried shuffle($images) <?php foreach( $images as $image ): // $rand_class = array('small', 'medium', 'large'); $size = 'medium'; $thumb = $image['sizes'][ $size ]; $width = $image['sizes'][ $size . '-width' ]; $height = $image['sizes'][ $size . '-height' ]; ?> <li><img src="<?php echo $image['sizes']['medium']; ?>" alt="<?php echo $image['alt']; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" /></li> <?php endforeach; ?> <?php endif; ?> </ul> <?php endwhile; // end of the loop. ?> 

Заранее спасибо.

Solutions Collecting From Web of "Случайные изображения без дубликатов (галерея ACF)"

Используйте array_unique() перед foreach:

Отредактировано:

 <?php while ( have_posts() ) : the_post(); $images = get_field('gallery'); // thumbnail if( $images ): ?> <ul id="container" class="tiles-wrap animated"> <?php $images = array_rand($images); $images = array_unique($images); foreach( $images as $image ): // $rand_class = array('small', 'medium', 'large'); $size = 'medium'; $thumb = $image['sizes'][ $size ]; $width = $image['sizes'][ $size . '-width' ]; $height = $image['sizes'][ $size . '-height' ]; ?> <li><img src="<?php echo $image['sizes']['medium']; ?>" alt="<?php echo $image['alt']; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" /></li> <?php endforeach; endif; ?> </ul> <?php endwhile; ?>