サポート » プラグイン » AdvancedCustomFieldsでセレクトボックスの選択肢をダイナミックに変更したい

  • 解決済 oga111

    (@oga111)


    カスタムフィールドのセレクトボックスの値に、
    すでに登録中の記事のタイトルを持ってきたいと思いまして、
    本家のページに以下のマニュアルを見ながら行っているのですがうまく行きませんん。

    ■Dynamically populate a select field’s choices
    http://www.advancedcustomfields.com/resources/dynamically-populate-a-select-fields-choices/

    function.php に以下のように記載しているのですが、
    どなたかお教え頂けないでしょうか。

    フィールド名が、abcde のセレクトボックスの値を動的生成した値にしたい場合です。
    どうぞよろしくお願いいたします。

    function my_acf_load_field_abcde( $field ){
    $field[‘choices’] = array();
    $the_args = array(‘post_type’ => ‘items’);
    $the_query = new WP_Query($the_args);
    while ( $the_query->have_posts() ) : $the_query->the_post();
    $field[‘choices’][ $the_query->post->ID ] = $the_query->post->post_title;
    endwhile;
    return $field;
    }
    add_filter(‘acf_load_field-abcde’, ‘my_acf_load_field_abcde’);

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • http://www.advancedcustomfields.com/resources/dynamically-populate-a-select-fields-choices/
    では、

    // v3.5.8.2 and below
    add_filter(‘acf_load_field-color’, ‘my_acf_load_field’);

    // v4.0.0 and above
    add_filter(‘acf/load_field/name=color’, ‘my_acf_load_field’);

    のように記載されていますが、
    まず、お使いのプラグインのバージョンに適切なほうを選んでいるのかどうか?を確認してもらえますか。

    スレッド開始 oga111

    (@oga111)

    Fumito MIZUNO 様

    ありがとうございます!
    バージョンが4.0だったので、以下記述に変更することで解決しました。
    // v4.0.0 and above
    add_filter(‘acf/load_field/name=color’, ‘my_acf_load_field’);

    なんと、初歩的なミスで大変申し訳ございません。
    この度はありがとうございました!!!

    スレッド開始 oga111

    (@oga111)

    MIZUNO様のご助言で、問題は解決したのですが、
    上記、ソースですと、メインループに影響が出てしまいましたので、
    念のため、正しいソースを掲載しておきます。
    wp_reset_postdata(); を追加しました。

    function my_acf_load_field_abcde( $field ){
    $field[‘choices’] = array();
    $the_args = array(‘post_type’ => ‘●●’);
    $the_query = new WP_Query($the_args);
    while ( $the_query->have_posts() ) : $the_query->the_post();
    $field[‘choices’][ $the_query->post->ID ] = $the_query->post->post_title;
    endwhile;
    wp_reset_postdata();
    return $field;
    }
    // v4.0.0 and above
    add_filter(‘acf/load_field/name=abcde’, ‘my_acf_load_field_abcde’);

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「AdvancedCustomFieldsでセレクトボックスの選択肢をダイナミックに変更したい」には新たに返信することはできません。