WordPress

カスタムフィールドの設定を取得するget_field_object()/get_field_objects()

get_field_object()の説明

get_field_object()は、指定したフィールドのラベルやフィールドタイプといった設定情報を返します。この関数を使用して、これらの設定をフィールドの値とともに配列としてロードできます。

パラメーター
get_field_object($selector, [$post_id = false], [$format = true], [$load = true]);
  • $selector(必須):フィールド名またはフィールドキーを指定します。
  • $post_id:値が保存された投稿IDを指定します。デフォルトは現在の投稿です。
  • $format:フォーマットを適用するかどうかの真偽値です。デフォルトはtrueです。
  • $load:フィールドの値をロードするかどうかの真偽値です。デフォルトはtrueです。
返却値

get_field_object()は、次のような配列を返します。

array(
    'ID'                => 0,
    'key'               => '',
    'label'             => '',
    'name'              => '',
    'prefix'            => '',
    'type'              => 'text',
    'value'             => null,
    'menu_order'        => 0,
    'instructions'      => '',
    'required'          => 0,
    'id'                => '',
    'class'             => '',
    'conditional_logic' => 0,
    'parent'            => 0,
    'wrapper'           => array(
        'width'             => '',
        'class'             => '',
        'id'                => ''
    )
);

フィールドのラベルと値を表示

get_field_object()は連想配列を返すので、キーを指定して値を取得します。

$field = get_field_object( "field1" );

// ラベルを表示
echo $field["label"];

// 値を表示
echo $field["value"];

get_field_objects()

get_field_objects()は、指定した投稿に保存されているすべてのフィールドの情報(ラベルやフィールドタイプ)を返します。

get_field_objects( [$post_id = false], [$format = true], [$load = true] );
パラメーター
  • $post_id:値が保存された投稿IDを指定します。デフォルトは現在の投稿です。
  • $format:フォーマットを適用するかどうかの真偽値です。デフォルトはtrueです。
  • $load:フィールドの値をロードするかどうかの真偽値です。デフォルトはtrueです。
返却値

get_field_objects()は、次のような配列を返します。

array(
    "field_name" => array(
        'ID'                => 0,
        'key'               => '',
        'label'             => '',
        'name'              => '',
        'prefix'            => '',
        'type'              => 'text',
        'value'             => null,
        'menu_order'        => 0,
        'instructions'      => '',
        'required'          => 0,
        'id'                => '',
        'class'             => '',
        'conditional_logic' => 0,
        'parent'            => 0,
        'wrapper'           => array(
            'width'             => '',
            'class'             => '',
            'id'                => ''
        )
    ),
    ...
);

すべてのフィールドのラベルと値を表示

次の例では、get_field_objects()を使って、すべてのフィールドのラベルと値を表示しています。

$fields = get_field_objects();
foreach( $fields as $field ){
    echo $field['label'] . " : " . $field['value'];
}

関連記事