サポート » プラグイン » acf別フィールドの値を自動で反映させる

  • wt0223

    (@wtfnn0223)


    様々な方法で試しましたが、うまくできないため、投稿させていただきました。
    「acf」というグループフィールド内にある「date」というデイトピッカーフィールドで入力の値を、同じ投稿内の「StartDate」という「acf」グループ外のフィールド(デイトピッカーフィールド)に自動で反映するようにしたいです。

    ご教授の程宜しくお願い致します。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • 「acf」というグループフィールド内にある「date」というデイトピッカーフィールド

    との記述から、Advanced Custom Fields を利用してのことと思います。

    「自動で」とのことですが、投稿の編集画面でdateフィールドで日付を設定して投稿を保存したときに、StartDateフィールドに自動的に日付の値を反映させる、ということであれば、functions.phpに下記を書けばいけると思います。

    function sync_acf_fields( $post_id ) {
    	$value = get_field( 'date', $post_id );
    	update_field( 'StartDate', $value, $post_id );
    }
    add_action( 'save_post', 'sync_acf_fields' );
    

    get_field(), update_field()

    wt0223

    (@wtfnn0223)

    kazuyk様

    ご返信ありがとうございます。今回もお世話になります。
    頂いたコードを入れてみましたが、StartDateのフィールドが空になってしまいます。
    dateはacfというグループフィールドの中にあるサブフィールドなのですが、そちらも関係してきますでしょうか?

    ご教授の程宜しくお願い致します。

    StartDate は acfグループ外、とのことですが、Advanced Custom Fields のフィールドでしょうか。

    wt0223

    (@wtfnn0223)

    ご返信ありがとうございます。
    はい、すべてAdvanced Custom Fieldsのフィールドです。

    どうぞ宜しくお願い致します。

    「グループフィールド」ってどうやって設定するのですか? Pro版をお使いなのでしょうか。

    下記を読むと、リピーター フィールドとフレキシブル コンテント フィールドのサブフィールドの場合は get_sub_field() で取得するらしいです。
    https://www.advancedcustomfields.com/resources/get_sub_field/

    「グループフィールド」のサブフィールドもそれに相当するのかもしれません。であれば、前述の $value = get_field( 'date', $post_id ); の部分を $value = get_sub_field( 'date' ); にすればいいかもしれません。

    wt0223

    (@wtfnn0223)

    ご返信ありがとうございます。
    acfはPRO版を利用しています。

    既にget_sub_fieldも試してみましたが、結果は値を取得できませんでした。

    Pro版でしたら開発元(販売元)のサポートに質問するべきかと思いますが…

    acf がグループフィールドの場合、$values = get_field( 'acf' ); でサブフィールドの名前と値の配列が取得できるみたいなので、$values['date'] でdateサブフィールドの値が取得できそうです。

    wt0223

    (@wtfnn0223)

    ご返信ありがとうございます。
    申し訳ありません、英語ができず日本語のこちらに投稿させていただきました。

    上記の方法で試してみましたが、うまく行きませんでした。
    他も色々試してみたいと思います。

    ありがとうございました。

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