概要
get_row
関数は、Advanced Custom Fields (ACF) プラグインにおいて、リピーター(Repeater)フィールド内の現在の行のすべての値を含む配列を返します。この関数は、リピーターフィールドを使用する際に、特定のデータを取得したり、表示したりするためによく使われます。以下は、一般的な使用シーンの例です。
- リピーターフィールドに格納されたデータをリストとして表示する。
- 動的なコンテンツを生成するために複数の行のデータを処理する。
- ユーザーが選択した行に基づいて特定のデータをフィルタリングする。
- テンプレート内にリピーターデータを組み込む際に役立つ。
- ループ内で特定のポストメタデータを簡単に取得する。
- 複数のリピーターフィールドを組み合わせて表示する際にデータを整形する。
構文
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;
説明: リピーターフィールドの各行に番号を付けて表示するためのコードサンプルです。