質問: get_field($field_name, $post_ID, false); error_log(print_r($debug_str,true), 3, '/debug.txt'); //記事更新でdebug.txtにTESTの文字列が反映される。 } add_action('publish_post', 'update_acf', 10, 2); ``` 上記の通り、同じ関数内でget_fieldを使って当該のカスタムフィールドの値をとると、更新したかった値は取得できるのですが、inputに値は反映されておらず、テンプレートで呼び出しても値は入っていないものとされてしまいます。 これを、カスタムフィールドのinputにも値が反映され、テンプレートからも呼び出せるようにするにはどうすればよいでしょうか。 update_field の引数をフィールド名ではなくフィールドキーにしてみたり、update_post_meta を使ってみたりしたのですが、結果は変わりませんでした。 ご教示いただけますと幸いです。 よろしくお願いいたします。
回答: 原因まで特定できませんでしたが、一旦、自己解決しました。 今回、アクションフックにpublish_postを指定し、「該当記事の編集画面の更新ボタンを押す」ことで、該当記事内のカスタムフィールドの値を自動的に更新したかったのですが、編集画面を開かない状態で更新を行うことでカスタムフィールドの値を上書きすることができました。(記事一覧からのクイック編集・一括編集など) 同じ関数内で、タイトルを書き換える処理は正常に反映されていたので、なかなか気づけませんでした。 編集画面を開いた状態で操作すると、一度の更新でdebug.txtに処理が2回分記録されていたことなどが関係するのでしょうか? 関数で更新した値を見た目の値(当該カスタムフィールドの入力欄の状態)が上書きしてしまっているとか? 原因や回避策がお分かりの方がいらっしゃいましたら、ご教示いただけますと幸いです。 今回ご回答いただけました方には、改めて御礼申し上げます。