WordPressでプロフィールのカスタムフィールドを外部から変更する

ゾンビランドサガ、視聴決定しました。

WordPressで会員制サイトを作ろうと思ったらおそらく必須になるであろう「ユーザープロフィール」のカスタムフィールドをフォームから変更させようとしてえらい躓いたのでメモです。

なぜ躓いたか

まず第一にwp_insert_user()でフォームからの情報をユーザーとして登録するわけだが、これはデフォルトで対応している項目(名前・パスワード等、CodeXの参考部分参照)しか登録できない。ここにカスタムフィールドを追加できないことに気づくまで時間がかかった…。

次にACFのupdate_field()の存在を知ったのでこれを使おうとしたがうまくいかず。調べてた結果これに行きついた。

ACFで更新をデータのかける際には注意が必要。the_fieldとかで通常使っているのは'name'だけれど、正式にはkeyを使うべき。
参考:https://qiita.com/yousan/items/c925f0a241be02a55292

こちらのQiitaの投稿にはfieldのnameからkeyを渡すコードが書かれていたが、そこまでしなくても…という人向けの調べる方法ありました。

調べ方

おなじみ「Advance Custom Fields」(以下ACF)からユーザーのカスタムフィールドを作成してください。

ユーザーページからkeyを調べたいフィールドのinputのnameを開発者ツールでみたらOKです。