サポート » プラグイン » Advanced Custom Fieldsで、設定した値を読み取りたい

  • 解決済 umioyo

    (@umioyo)


    Advanced Custom Fieldsについての質問です。
    いま、各製品ページに属性情報を設定してjsonで書き出し、設定した属性情報でフィルタリングさせるようなページを考えています。

    管理ページで設定したラジオボタンやチェックボックスの選択肢の項目をそのままフィルタリングさせるページの選択肢として使いたいのですが、取得する方法はないでしょうか。
    jsonから取得する方法も考えたのですが、順番が狂ってしまいますし、未選択の項目は表示されなくなってしまいます。
    管理画面で設定した通り表示させたいです。

    よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    Advanced Custom Fields で設定したフィールドを取得することができます。
    acf_get_fields( $parent )という関数があります。
    $parent にはグループの ID を設定すれば取得できます。
    この ID はフィールドグループを取得するの URL に現れる post パラメータになります。

    取得結果は以下のようになりますので、あとはよしなに設定を使って選択肢として表示すれば良いと思います。

    array (size=1)
      0 => 
        array (size=25)
          'ID' => int 71
          'key' => string 'field_5f59a23cfb497' (length=19)
          'label' => string 'セレクト1' (length=15)
          'name' => string 'セレクト1' (length=15)
          'prefix' => string 'acf' (length=3)
          'type' => string 'select' (length=6)
          'value' => null
          'menu_order' => int 0
          'instructions' => string '' (length=0)
          'required' => int 0
          'id' => string '' (length=0)
          'class' => string '' (length=0)
          'conditional_logic' => int 0
          'parent' => int 70
          'wrapper' => 
            array (size=3)
              'width' => string '' (length=0)
              'class' => string '' (length=0)
              'id' => string '' (length=0)
          'choices' => 
            array (size=3)
              '値1' => string '値1' (length=6)
              '値2' => string '値2' (length=6)
              '値3' => string '値3' (length=6)
          'default_value' => boolean false
          'allow_null' => int 0
          'multiple' => int 0
          'ui' => int 0
          'return_format' => string 'value' (length=5)
          'ajax' => int 0
          'placeholder' => string '' (length=0)
          '_name' => string 'セレクト1' (length=15)
          '_valid' => int 1

    ありがとうございます!
    無事思ったものが取得できました。
    助かりました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。