get_field_object()


WordPress関数get_field_object()は、Advanced Custom Fields(ACF)プラグインを使用して定義されたカスタムフィールドの詳細情報を取得するために使用されます。この関数はフィールドの値だけでなく、フィールドの設定やラベル情報も返します。

構文

get_field_object( string|int $selector, mixed $post_id = false, bool $format_value = true );

引数の説明:

  • $selector (string|int) — 取得するカスタムフィールドのフィールドキーまたはフィールド名。
  • $post_id (mixed) — フィールドを取得する対象の投稿ID。デフォルトは現在の投稿。
  • $format_value (bool) — フィールドの値をフォーマットするかどうか。デフォルトはtrue

例 1: カスタムフィールドの値を取得

指定した投稿のカスタムフィールド値を取得する基本的な例です。

<?php
$field = get_field_object( 'custom_field_name' );
echo $field['value'];
?>

例 2: 投稿タイトルとカスタムフィールドを表示

投稿タイトルとカスタムフィールドラベル、値を一緒に表示します。

<?php
$field = get_field_object( 'custom_field_name' );
echo '<h3>' . get_the_title() . '</h3>';
echo '<p>' . $field['label'] . ': ' . $field['value'] . '</p>';
?>

例 3: 複数のカスタムフィールドをループで表示

複数のカスタムフィールドを一括表示する方法です。

<?php
$fields = [ 'field_one', 'field_two', 'field_three' ];
foreach ( $fields as $field_name ) {
    $field = get_field_object( $field_name );
    echo '<p>' . $field['label'] . ': ' . $field['value'] . '</p>';
}
?>

例 4: 条件に基づいてカスタムフィールドを表示

カスタムフィールドの値が特定の条件を満たす場合のみ表示します。

<?php
$field = get_field_object( 'custom_field_name' );
if ( $field['value'] == '特定の値' ) {
    echo '<p>このフィールドの値は「特定の値」です。</p>';
}
?>

例 5: カスタム投稿タイプでのカスタムフィールド取得

特定の投稿タイプの投稿からカスタムフィールド値を取得します。

<?php
$args = [
    'post_type' => 'custom_post_type',
    'posts_per_page' => 1
];
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        $field = get_field_object( 'custom_field_name' );
        echo '<p>' . $field['label'] . ': ' . $field['value'] . '</p>';
    }
    wp_reset_postdata();
}
?>

注意事項

get_field_object()を使用する際は、Advanced Custom Fields(ACF)プラグインが有効化されていることを確認してください。また、カスタムフィールドキーが正しいかどうかを必ず確認してください。