WordpressのAdvanced Custom fieldsというプラグインを使って、投稿タイプおよびユーザ情報に対して、カスタムフィールドを追加しています。
php
1// 例 2$post_id = wp_insert_post([ 3 "post_title" => filter_input(INPUT_POST, "title"), 4 "post_type" => "hoge", 5 "post_status" => "publish", 6]); 7update_post_meta($post_id, "fuga", filter_input(INPUT_POST, "fuga")); 8 9wp_insert_user([ 10 "user_login" => filter_input(INPUT_POST, "log"), 11 "user_pass" => filter_input(INPUT_POST, "pwd"), 12 "user_email" => filter_input(INPUT_POST, "email"), 13 "nickname" => filter_input(INPUT_POST, "nickname"), 14]); 15update_field("xxxx", $xxxx, "user_" . $user->ID);
上記のような感じでwp_insert_userで記事、wp_insert_postでユーザを新規追加したあと、それらに対してupdate_fieldでカスタムフィールドを更新しました。
そのあと公開画面上の別の画面でget_fieldを行っても、値を取得することができません。
ただし、管理画面からカスタムフィールドを確認してみると、値は保存されており、そのまま更新を行うと、公開画面上でも取得することができました。
とはいえ新規投稿してから、わざわざ管理画面から更新ボタンをするわけにもいきません。
なお、記事に対してはupdate_fieldではなくupdate_post_metaを使うことで、get_fieldをしたときに新規記事に対してもカスタムフィールドを取得することができました。
しかし、ユーザのカスタムフィールドはupdate_post_metaで更新することができないので、困っています。
https://support.advancedcustomfields.com/forums/topic/wp_insert_post-update_field/
上記サイトでおそらく同じ現象が報告されており、カスタムフィールドの名前を指定するときに、「field_586131d916252」といったようなフィールドキーを使えば解決すると見て取れます。
よって、管理画面からinputの要素検証をしてフィールドキーを調べ、update_fieldを書き換えたのですが、これだと正常に保存できず、管理画面でもカスタムフィールドを取得できていませんでした。
どうすれば、wp_insert_userおよびwp_insert_postで新規に増やしてから、update_fieldで更新したカスタムフィールドを、正常に取得できるようになるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/10 02:27