概要
acf_get_fields
関数は、特定のフィールドグループからすべてのフィールドを取得します。この関数は、カスタムフィールドを管理するために非常に便利で、以下のような機能を実装する際によく使われます。
- 投稿やページに関連するメタデータの表示
- カスタムオプションページのフィールド取得
- カスタム投稿タイプのフィールド取得
- フィールドグループに基づいた動的コンテンツの生成
- 管理画面でのカスタム設定の表示
- フロントエンドでのフィールド値の利用
構文
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の段落として表示します。