プラグインAdvanced custom fields(ACF)のthe_repeater_field関数の使用方法・解説

概要

the_repeater_field 関数は、Advanced Custom Fields(ACF)プラグインにおけるリピーターフィールドを表示するために使用されます。リピーターフィールドは、関連する複数のエントリ(行)を持つカスタムフィールドグループを作成できる機能であり、以下のような場面でよく利用されます:

  1. スライダーの画像とキャプションの管理
  2. FAQ(よくある質問)の項目の作成
  3. 商品の仕様のリスト化
  4. イベントスケジュールの作成
  5. スタッフのプロフィール情報の表示
  6. ユーザーからのレビューのリスト化

構文

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セクションを作成し、質問と回答を表示します。

これらのサンプルコードは、リピーターフィールドを活用してさまざまなデータを表示する方法を示しています。

この関数について質問する


上の計算式の答えを入力してください