概要
get_field_object
関数は、特定のフィールドの設定を返します。この関数は、Advanced Custom Fields (ACF) プラグインによって提供され、特定のカスタムフィールドに関連するメタデータや設定を取得するのに役立ちます。get_field_object
は、以下のような機能を実装する際によく使われます:
- フォームフィールドのラベルや説明を表示する
- カスタムフィールドのデフォルト値を取得する
- フィールドのスラッグを使用してフィールド設定を取得する
- フィールドが持つ可能性のある選択肢を取得する
- フィールドの設定に基づいてカスタムクエリを作成する
- フィールドのタイプに応じてConditional Logicを実装する
構文
get_field_object( $field_key, $post_id );
パラメータ
$field_key
(string): フィールドのキーまたはフィールドの名前。$post_id
(mixed): 投稿のID。指定しない場合は、現在の投稿が使用されます。
戻り値
フィールドオブジェクトの配列、フィールド設定に関する詳細情報を含む。
使用可能なプラグインとバージョン
- Advanced Custom Fields (ACF) バージョン: 5.0.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: 特定のフィールド情報を取得する
このサンプルコードは、特定の投稿IDに関連するカスタムフィールドの情報を取得し、ラベルと値を表示します。
$field_key = 'your_field_name';
$field_object = get_field_object($field_key, $post_id);
if ($field_object) {
echo '<label>' . esc_html($field_object['label']) . '</label>: ' . esc_html($field_object['value']);
}
引用元: https://www.advancedcustomfields.com/resources/get_field_object/
サンプル 2: 特定の投稿のフィールド設定を表示する
このコードは、投稿のフィールド設定情報を取得し、フィールドタイプを表示します。
$field = get_field_object('example_field', $post->ID);
if ($field) {
echo 'Field type: ' . esc_html($field['type']);
}
引用元: https://www.advancedcustomfields.com/resources/get_field_object/
サンプル 3: カスタムフィールドの選択肢をループして表示
このサンプルコードは、選択肢フィールドの設定を取得して、各選択肢をリストとして表示します。
$field_object = get_field_object('select_field_name');
if ($field_object && isset($field_object['choices'])) {
echo '<ul>';
foreach ($field_object['choices'] as $choice_value => $choice_label) {
echo '<li>' . esc_html($choice_label) . ' (' . esc_html($choice_value) . ')</li>';
}
echo '</ul>';
}
引用元: https://www.advancedcustomfields.com/resources/get_field_object/
サンプル 4: フィールドのデフォルト値を使用する
このコードは、フィールドのデフォルト値を取得し、特定の条件に基づいて表示します。
$field_object = get_field_object('default_value_field_name');
if ($field_object) {
$default_value = $field_object['default_value'] ?? 'Default is not set';
echo 'Default Value: ' . esc_html($default_value);
}
引用元: https://www.advancedcustomfields.com/resources/get_field_object/
サンプル 5: フィールドオブジェクトを全て取得する
フィールドキーを使って、投稿に関連する全てのフィールドオブジェクトを取得するサンプルです。
$fields = get_field_objects($post_id);
if ($fields) {
foreach ($fields as $key => $value) {
echo $key . ': ' . esc_html($value['value']) . '<br>';
}
}
引用元: https://www.advancedcustomfields.com/resources/get_field_object/