10の値を変更すれば表示数を変更できます。
<?php
$i = 0;
if( have_rows( 'repeater_field_name' ) ):
while( have_rows( 'repeater_field_name' ) ):
the_row();
$i++;
if( $i > 10 ) {
break;
}
the_sub_field( 'sub_field_name' );
endwhile;
endif;
?>
凄いです!
出来ました!!!!!
本当にありがとうございますm(_)m
manboさん
さきほどはとても助かりました。感謝です。
重ねての質問で大変恐縮でございますが、
<?php
$i = 0;
if( have_rows( 'repeater_field_name' ) ):
while( have_rows( 'repeater_field_name' ) ):
the_row();
$i++;
if( $i > 10 ) {
break;
}
the_sub_field( 'sub_field_name' );
endwhile;
endif;
?>
の例に続き、
リピートフィールドが複数ある場合の抽出方法ってあるのでしょうか?
repeater_field_name_A + repeater_field_name_B
の中から、sub_field_name_A + sub_field_name_B を合計10件
取り出したいという場合です。
どうかお願いいたします。
manboさん
仰るとおりなのですが、
repeater_field_name_A
repeater_field_name_B
は確実にsub_field_nameを持っていると限らず、
repeater_field_name_Aが1つでrepeater_field_name_Bが9つかもしれませんし、
repeater_field_name_Aが9つでrepeater_field_name_Bが1つかもしれない
といった状況なのです
manboさん
度々ご回答頂きありがとうございました。
とても助かりました。
上記の件はうまいこと妥協点を見つけシステムの仕様を変更することで
解決していきたいと思います。
ありがとうございました!
photographer hiro.さん
なるほどです、ありがとうございます!
参考サイトを参照してチャレンジしてみます!
komatterwwwさん
補足説明です。
ループ内において
$sub_field[] = get_sub_field( 'sub_field_name_A' );
$sub_field[] = get_sub_field( 'sub_field_name_B' );
又は
$sub_field[] = <li class="list_a">.esc_html(get_sub_field( 'sub_field_name_A' )).'</li>'.PHP_EOL;
$sub_field[] = <li class="list_b">.esc_html(get_sub_field( 'sub_field_name_B' )).'</li>'.PHP_EOL;
//「PHP_EOL」はソース内の改行コードです。
みたいな書き方でも構いません
※「the(表示関数)」ではなく「get(取得関数)」で必ずお子案ってください。
として定義すると「[]」を付けたので配列のして定義されます。
注意としてループ間にかならずリセットが必要
//ループ前(whileやforeachの前にリセット)
$output = array();
$sub_field = array();
//ループ外(ループ終了後)
if($sub_field):
$output = array_slice($sub_field, 0, 9); // 0~9番目つまり10件
$output_tag =
'<ul>'.
$output.
'</ul>';
echo $output_tag;
endif;
みたいな考え方で、つないであげると
ワードプレスだからここまでしかできないみたいな制限が少なくなりますよ。
考え方的なところを参考にして頂けると幸いです。
photographer hiro.さん
なるほどです、度々助言頂き非常に助かっています。
photographer hiro.さんの助言を参考に頑張ってみます!
ありがとうございます!