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

概要

get_row関数は、Advanced Custom Fields (ACF) プラグインにおいて、リピーター(Repeater)フィールド内の現在の行のすべての値を含む配列を返します。この関数は、リピーターフィールドを使用する際に、特定のデータを取得したり、表示したりするためによく使われます。以下は、一般的な使用シーンの例です。

  1. リピーターフィールドに格納されたデータをリストとして表示する。
  2. 動的なコンテンツを生成するために複数の行のデータを処理する。
  3. ユーザーが選択した行に基づいて特定のデータをフィルタリングする。
  4. テンプレート内にリピーターデータを組み込む際に役立つ。
  5. ループ内で特定のポストメタデータを簡単に取得する。
  6. 複数のリピーターフィールドを組み合わせて表示する際にデータを整形する。

構文

get_row();

パラメータ

この関数は、パラメータを取りません。

戻り値

現在の行のすべての値を含む配列。行が存在しない場合は false を返します。

使用可能なバージョン

  • 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('my_repeater') ):
    while ( have_rows('my_repeater') ) : the_row();
        $row_data = get_row();
        echo '<p>' . esc_html($row_data['sub_field_1']) . '</p>';
    endwhile;
endif;

説明: my_repeaterリピーターフィールド内の各行のsub_field_1のデータを表示するサンプルコードです。

サンプル2: 特定の条件でリピーターデータを取得

if( have_rows('my_repeater') ):
    while ( have_rows('my_repeater') ) : the_row();
        $row_data = get_row();
        if ($row_data['sub_field_2'] === '条件') {
            echo '<p>' . esc_html($row_data['sub_field_1']) . '</p>';
        }
    endwhile;
endif;

説明: my_repeaterに含まれる各行のsub_field_2が特定の条件に一致する場合、その行のsub_field_1のデータを表示します。

サンプル3: リピーターデータを配列に格納

$repeater_data = [];
if( have_rows('my_repeater') ):
    while ( have_rows('my_repeater') ) : the_row();
        $repeater_data[] = get_row();
    endwhile;
endif;
var_dump($repeater_data);

説明: my_repeaterからすべてのリピーターデータを配列に格納し、デバッグ用に出力します。

サンプル4: サブフィールドの値を取得

if( have_rows('my_repeater') ):
    while ( have_rows('my_repeater') ) : the_row();
        $row_data = get_row();
        $sub_field = $row_data['sub_field_3'];
        // 何らかの処理を行う
    endwhile;
endif;

説明: リピーターフィールド内のsub_field_3の値を取得し、さらなる処理を行うために利用するサンプルコードです。

サンプル5: リピーターデータのループをカスタマイズ

$counter = 1;
if( have_rows('my_repeater') ):
    while ( have_rows('my_repeater') ) : the_row();
        $row_data = get_row();
        echo '<div>' . $counter . ': ' . esc_html($row_data['sub_field_4']) . '</div>';
        $counter++;
    endwhile;
endif;

説明: リピーターフィールドの各行に番号を付けて表示するためのコードサンプルです。

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


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