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

概要

acf_get_fields 関数は、特定のフィールドグループからすべてのフィールドを取得します。この関数は、カスタムフィールドを管理するために非常に便利で、以下のような機能を実装する際によく使われます。

  1. 投稿やページに関連するメタデータの表示
  2. カスタムオプションページのフィールド取得
  3. カスタム投稿タイプのフィールド取得
  4. フィールドグループに基づいた動的コンテンツの生成
  5. 管理画面でのカスタム設定の表示
  6. フロントエンドでのフィールド値の利用

構文

acf_get_fields($field_group_key);

パラメータ

  • $field_group_key (string) – 取得したいフィールドグループのキーパー(IDまたはスラッグ)。

戻り値

  • (array) – 取得したフィールドの配列。フィールドが存在しない場合は false を返します。

使用可能なプラグインおよびワードプレスのバージョン

  • Advanced Custom Fields (ACF) バージョン: 5.x 以上
  • 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

$field_group_key = 'group_123456'; //フィールドグループキーを指定
$fields = acf_get_fields($field_group_key); //フィールドを取得

if($fields) {
    foreach($fields as $field) {
        echo $field['label'] . ': ' . $field['value'] . '<br>'; //フィールドのラベルと値を表示
    }
}

このコードは、特定のフィールドグループからすべてのフィールドを取得し、それぞれのラベルと値を表示します。

サンプルコード 2

$field_group_key = 'group_settings'; //設定用フィールドグループ
$fields = acf_get_fields($field_group_key); //フィールドを取得

$options = [];
if($fields) {
    foreach($fields as $field) {
        $options[$field['name']] = $field['value']; //フィールドの値をオプション配列に保存
    }
}

このコードは、設定用のフィールドグループからフィールドを取得し、それらの値をオプション配列に保存します。

サンプルコード 3

$field_group_key = 'group_example'; //例のフィールドグループ
$fields = acf_get_fields($field_group_key); //フィールドを取得

$field_names = wp_list_pluck($fields, 'name'); //フィールドの名前の配列取得

このコードでは、特定のフィールドグループからフィールドを取得し、それぞれのフィールド名を配列として取得します。

サンプルコード 4

$field_group_key = 'group_789012'; //カスタム投稿用フィールドグループ
$fields = acf_get_fields($field_group_key); //フィールドを取得

if($fields) {
    foreach($fields as $field) {
        update_post_meta($post_id, $field['name'], $field['value']); //ポストメタにフィールドの値を保存
    }
}

このコードは、指定されたカスタム投稿用のフィールドグループからフィールドを取得し、それらの値を投稿メタに保存します。

サンプルコード 5

$field_group_key = 'group_contact'; //連絡用フィールドグループ
$fields = acf_get_fields($field_group_key); //フィールドを取得

foreach($fields as $field) {
    echo '<p>' . esc_html($field['label']) . ': ' . esc_html($field['value']) . '</p>'; //フィールドのラベルと値をHTMLで表示
}

このコードは、連絡用のフィールドグループからフィールドを取得し、それらをHTMLの段落として表示します。

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


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