Есть такой пример кода, и он в целом почти работает как надо:
<?php
$repeater = get_field( 'main-offer_add' );
$random_rows = array_rand( $repeater, 1 );
if( is_array( $random_rows ) ){
foreach( $random_rows as $random_row ){
// Output data here. Replace sub field names.
echo 'Sub Field 1: ' . $repeater[$random_row]['main-offer_add_text'] . '1';
}
} else {
echo 'Sub Field 1: ' . $repeater[$random_rows]['main-offer_add_text'] . '2';
}
?>
Проблема заключается в том, что в редких случаях поле не выводится вообще. Т.е. обновляешь страницу раз 5 и на 5 раз информация не выводится. Потом снова обновляешь и снова рандом работает как надо. Не понимаю, в чём дело :(
UPD упрощенный пример:
<?php
$repeater = get_field( 'main-offer_add' );
$rand = rand(0, (count($repeater) - 1));
echo $repeater[$rand]['main-offer_add_img'];
?>
Но тоже аналогично :c