「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()
kazuyk様
ご返信ありがとうございます。今回もお世話になります。
頂いたコードを入れてみましたが、StartDateのフィールドが空になってしまいます。
dateはacfというグループフィールドの中にあるサブフィールドなのですが、そちらも関係してきますでしょうか?
ご教授の程宜しくお願い致します。
StartDate は acfグループ外、とのことですが、Advanced Custom Fields のフィールドでしょうか。
ご返信ありがとうございます。
はい、すべて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' );
にすればいいかもしれません。
ご返信ありがとうございます。
acfはPRO版を利用しています。
既にget_sub_fieldも試してみましたが、結果は値を取得できませんでした。
Pro版でしたら開発元(販売元)のサポートに質問するべきかと思いますが…
acf がグループフィールドの場合、$values = get_field( 'acf' );
でサブフィールドの名前と値の配列が取得できるみたいなので、$values['date']
でdateサブフィールドの値が取得できそうです。
ご返信ありがとうございます。
申し訳ありません、英語ができず日本語のこちらに投稿させていただきました。
上記の方法で試してみましたが、うまく行きませんでした。
他も色々試してみたいと思います。
ありがとうございました。