実現したいこと
WordPressにてACFを使いカスタムフィールドの繰り返しフィールドに入力した文字をランダムに3つ表示させたいと考えております。
調べた内容
まず表示数3つの場合:
php
1<?php 2$i = 0; 3if( have_rows('field_name') ): 4 while( have_rows('field_name') ): 5 (the_row()); 6 $i++; 7 if( $i > 3 ) { 8 break; 9} 10 the_sub_field('sub_field_name'); endwhile; 11endif; 12?>
ランダムに1件表示の場合:
php
1<?php 2 $rows = get_field('field_name'); 3 $rand_row = $rows[array_rand($rows)]; 4 $rand_comment = $rand_row['sub_field_name']; 5 echo $rand_comment; 6?>
試したこと
この2つの方法は分かったのですが、
ランダムに3つ表示をさせたい場合の記述方法が分からず悩んでいます。
phpが初心者なのですが、shuffle() array_rand()を使えばいいのかと考え、
php
1<?php 2$i = 0; 3if( have_rows('field_name') ): 4 while( have_rows('field_name') ): 5 array_rand (the_row()); 6 $i++; 7 if( $i > 3 ) { 8 break; 9} 10 the_sub_field('sub_field_name'); endwhile; 11endif; 12?>
こちらを試したのですが、何も表示されませんでした。
ランダム1件の表示を元に下記のコードも考えたのですが、
こちらだと全件の中から3件をランダムに選んでしまうようで同じものが表示されてしまいました。
php
1<?php 2$i = 0; 3if( $rows = get_field('field_name') ): 4 while( $rand_row = $rows[array_rand($rows)] ): 5 $rand_comment = $rand_row['sub_field_name']; 6 $i++; 7 if( $i > 3 ) { 8 break; 9} 10echo $rand_comment;endwhile; 11endif; 12?>
array_randの場所がいけないのでしょうか?
どなたかご教授いただければと思います。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー