概要
the_repeater_field
関数は、Advanced Custom Fields(ACF)プラグインにおけるリピーターフィールドを表示するために使用されます。リピーターフィールドは、関連する複数のエントリ(行)を持つカスタムフィールドグループを作成できる機能であり、以下のような場面でよく利用されます:
- スライダーの画像とキャプションの管理
- FAQ(よくある質問)の項目の作成
- 商品の仕様のリスト化
- イベントスケジュールの作成
- スタッフのプロフィール情報の表示
- ユーザーからのレビューのリスト化
構文
the_repeater_field( $field_name, $options );
パラメータ
$field_name
(string) 必須。リピーターフィールドの名前。$options
(array) オプション。ループの動作を制御する配列。
戻り値
特に戻り値はなく、画面に出力されます。
使用可能なバージョン
- ACFバージョン: 5.0以上
- WordPressバージョン: 4.0以上
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | |
wp | 〇 |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード 1
if( have_rows('your_repeater_field') ):
while ( have_rows('your_repeater_field') ) : the_row();
$sub_field_value = get_sub_field('sub_field_name');
echo '<div>' . esc_html($sub_field_value) . '</div>';
endwhile;
endif;
このコードは、リピーターフィールド内のサブフィールドの値をループで取得し、各値をHTMLで表示します。
サンプルコード 2
if( have_rows('events') ):
echo '<ul>';
while ( have_rows('events') ) : the_row();
$date = get_sub_field('event_date');
$title = get_sub_field('event_title');
echo '<li>' . esc_html($date) . ': ' . esc_html($title) . '</li>';
endwhile;
echo '</ul>';
endif;
このコードでは、イベントのリストを作成し、各イベントの日時とタイトルを表示します。
サンプルコード 3
if( have_rows('team_members') ):
echo '<div class="team">';
while ( have_rows('team_members') ) : the_row();
$name = get_sub_field('member_name');
$position = get_sub_field('member_position');
echo '<p>' . esc_html($name) . ' - ' . esc_html($position) . '</p>';
endwhile;
echo '</div>';
endif;
このコードは、チームメンバーの名前と役職を表示するためのHTMLを生成します。
サンプルコード 4
if( have_rows('gallery') ):
echo '<div class="gallery">';
while ( have_rows('gallery') ) : the_row();
$image = get_sub_field('image');
echo '<img src="' . esc_url($image['url']) . '" alt="' . esc_attr($image['alt']) . '">';
endwhile;
echo '</div>';
endif;
このコードは、ギャラリーの画像を表示するためのHTMLを生成します。
サンプルコード 5
if( have_rows('faq') ):
echo '<dl>';
while ( have_rows('faq') ) : the_row();
$question = get_sub_field('question');
$answer = get_sub_field('answer');
echo '<dt>' . esc_html($question) . '</dt>';
echo '<dd>' . esc_html($answer) . '</dd>';
endwhile;
echo '</dl>';
endif;
このコードでは、FAQセクションを作成し、質問と回答を表示します。
これらのサンプルコードは、リピーターフィールドを活用してさまざまなデータを表示する方法を示しています。