WEMOブロックエディター完全対応のWordPressテーマ「SWELL」をリリースしました!コピペで終わらない、本質的な理解を目指した知識整理のメモをお届け。ver4.4から、データベースにwp_termmetaというテーブルが新しく追加されるようになりました。投稿のメタ情報を保存するwp_postmetaのターム版です。wp_termmeta用の関数も新しく用意されています。add_term_meta()update_term_meta()delete_term_meta()get_term_meta()これらによって、カテゴリ・タグ・タクソノミーにおける各タームにも、カスタムフィールドを追加してメタ情報を追加するということが容易に!例えばカテゴリごとに画像を登録したり、英語表記やイメージカラーなどの情報を追加する場合はwp_optionテーブルに値を保存してたかと思いますが、これからはwp_termmetaという専用のテーブルを使用していきましょう。いうことで今回は、ターム用のカスタムフィールドを追加し、wp_termmetaに値を保存する方法をメモしていきます。具体例として、カテゴリのタームを英語表記するためのカスタムフィールドを追加してみます。新規追加する時の画面にカスタムフィールド用の入力エリアを追加していきます。以下の様な記述をします。いうアクションにフックさせます。することで、タームの新規追加画面でadd_term_fields()の中身が呼び出されます。部分には適用させたいタクソノミーのスラッグを記述してください。post_tag'カスタムタクソノミーの場合はそのスラッグを。書き間違いではないです。この辺が統一されてないのはWordPressのご愛嬌ということで。<p>カテゴリー名の英語表記を入力してください。両方"term_eng"としていますが、ここは別の名前でも大丈夫です。分ける意味も特にないので、一緒でいいかと。WordPressの管理画面ですでに使用されているものに合わせています。上記のコードの結果を見てみましょう。以下の様に、英語表記用の要素が追加されます。編集画面にも入力エリアを追加しなくてはいけないですね。新規追加画面の時と流れはほぼ一緒です。いうアクションにフックさせます。先ほどと同様、適用させたいタクソノミーのスラッグを記述します。post_tag'カスタムタクソノミーの場合はそのスラッグを。新規追加画面では必要なかった処理がひとつ増えている点に注意してください。設定済みの情報をinputなどのvalue属性にセットしなくてはなりませんよね。wp_termmeta用に追加された関数get_term_meta()を使用します。class="description">カテゴリー名の英語表記を入力してください。使用されているので、出力するhtmlのソースもそれに合わせます。先ほどの新規作成画面のinputタグのものと同じ、"term_eng"を使用します。*別のname属性値でも実装できますが、保存処理などが面倒になるだけでメリットはありません。上記コードによって、以下の様に英語表記用の要素が追加されます。最後に、保存方法です。//編集ページ用フック作成したcreate_term()という関数を、create_termとedit_termsという2つのアクションにフックさせます。テーブルに保存します。編集ページ」での保存用にはedit_termsアクションにフックさせています。実はこれらはそれぞれ、created_termアクションとedit_termsアクションという別のアクションにフックさせても実装可能です。他の情報が保存された後にフックするか、という点です。