WordPressでさらに多くの整理機能を利用したいですか?カスタム分類法にカスタムメタフィールドを追加してみてください。
カスタム分類法を使用すると、カテゴリやタグを超えてコンテンツを整理できます。しかし、カスタムメタフィールドは、それらを説明するための追加の詳細やフィールドを追加すると便利な場合があります。
この記事では、WordPress のカスタム分類法にメタフィールドを追加する方法を説明します。

カスタムタクソノミーにカスタムメタフィールドを追加するのはいつですか?
WordPressウェブサイトで新しいコンテンツを作成するときは、デフォルトの2つのタクソノミーであるカテゴリとタグを使用して整理できます。
一部のウェブサイトでは、カスタムタクソノミーを使用することでメリットが得られます。これにより、コンテンツをさらに多くの方法で並べ替えることができます。
例えば、書籍レビューを投稿するウェブサイトでは、「主題」と「著者」というタクソノミーを追加して、訪問者が興味のあるレビューをすばやく見つけられるようにすることができます。
詳細については、WordPress でカスタム分類法を作成する方法に関するガイドを参照してください。
各タクソノミーには、デフォルトで名前、スラッグ、親(階層化されている場合)、説明の3つまたは4つのフィールドしかありません。

タクソノミーをより良く説明するために追加のフィールドを追加すると便利な場合があります。たとえば、「authors」タクソノミーに「year of birth」フィールドを追加することができます。
それを踏まえて、WordPressでカスタムタクソノミーにカスタムメタフィールドを追加する方法を説明します。
ステップ1:WordPressのカスタムタクソノミーにカスタムメタフィールドを追加する
まず、Advanced Custom Fieldsプラグインをインストールして有効化する必要があります。詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドをご覧ください。
次に、カスタムフィールド » 追加ページに移動します。ここで、1 つ以上の新しいフィールドを含むフィールドグループを追加できます。
フィールドグループにタイトルを付けるように求められます。これは、タクソノミーの追加または編集時に新しいフィールドと共に表示されます。このチュートリアルでは、Authorsタクソノミーにカスタムフィールドを追加したいので、フィールドグループ名を「Author Details」とします。

これが完了したら、「+フィールドを追加」ボタンをクリックしてフィールドを追加します。新しいフォームが表示され、新しいフィールドの詳細を入力できます。
フィールドラベルを入力すると、フィールド名が自動的に作成され、必要に応じて編集できます。チュートリアルの後半でフィールド名を使用するので、メモしておいてください。

次に、フィールドタイプ、著者がフォームに入力する際の指示、およびこのフィールドが必須かどうかなど、フィールドのその他の詳細を入力します。スクリーンショットに表示されていないその他のオプションには、デフォルトテキスト、プレースホルダーテキスト、文字数制限などがあります。
2番目のフィールドを追加したい場合は、「+ Add Field」ボタンをクリックしてプロセスを繰り返してください。それ以外の場合は、単に「Location」セクションまでスクロールしてください。
ここでは、新しいフィールドを表示する場所を記述するルールを作成できます。最初のドロップダウンメニューから「Taxonomy」を選択し、中央のフィールドは「is equal to」のままにします。最後に、最後のフィールドに正しいカスタムタクソノミーを選択します。このチュートリアルでは、「Author」を選択します。

このフィールドを別の分類法に追加したい場合は、「ルールグループを追加」ボタンをクリックして手順を繰り返します。
次に、ページ上の他の設定を調整する必要があります。デフォルト値はそのままにします。完了したら、ページの上部までスクロールして「公開」ボタンをクリックします。

おめでとうございます。WordPressでカスタムタクソノミーにカスタムメタフィールドを追加することに成功しました。しかし、まだやるべきことはいくつかあります。
ステップ 2: 新しいカスタムメタフィールドにデータを追加する
taxonomyに新しいフィールドがありますが、まだデータは含まれていません。今すぐそれを行う時間を取るべきです。
この例では、各著者の生年を入力する必要があります。そのためには、投稿 » 著者に移動し、編集したい著者の名前をクリックする必要があります。

その後、新しいフィールドにデータを入力できます。この場合、その著者の生年を入力します。新しいデータを保存するには、「更新」ボタンをクリックすることを忘れないでください。

カスタムタクソノミーにデータを追加するには、ウェブサイトでも同じ手順に従ってください。
完了したら、まだ1つのステップが残っています。カスタムフィールドはWordPressの管理画面にログインすると表示されますが、ウェブサイトの訪問者には表示されません。カスタムタクソノミーのアーカイブページにフィールドを追加する必要があります。
ステップ3:タクソノミーアーカイブページにカスタムメタフィールドを表示する
このステップでは、テーマファイルにコードを追加する必要があります。以前にそのような作業をしたことがない場合は、ウェブ上のスニペットをWordPressに貼り付ける方法に関する初心者ガイドを参照してください。
まず、テーマのフォルダに入り、分類法のアーカイブファイルを探します。名前は taxonomy-YOURTAXONOMYNAME.php のようになります。
例えば、「authors」というカスタムタクソノミーがある場合、taxonomy-authors.php というファイルを探す必要があります。
そのファイルが見つからない場合は、archive.php を探してください。そのファイルを複製し、上記のように名前を付ける必要があります。
注意: テーマに archive.php が含まれていない場合は、おそらく WordPressテーマフレームワーク を使用しており、タクソノミーアーカイブを手動で作成する必要があります。アーカイブファイルの作成方法を学ぶための良い出発点は、WordPressでカスタムアーカイブページを作成する方法に関するガイドです。
次に、ループの直前に次のコードを分類法のアーカイブに追加する必要があります。
<?php
// get the current taxonomy term
$term = get_queried_object();
// get the taxonomy meta field
$taxonomymetafield = get_field('FIELDNAME', $term);
// display the taxonomy meta field
echo $taxonomymetafield;
?>
上記で作成した実際のフィールド名に「FIELDNAME」を置き換える必要があることに注意してください。それをメモするように求めたことを覚えておいてください。
例として、フィールド名は「year_of_birth」とします。訪問者がフィールドの意味を理解できるように説明も追加します。そのため、タクソノミーアーカイブファイル taxonomy-authors.php に以下のコードを追加します。
<?php
// get the current taxonomy term
$term = get_queried_object();
// get the taxonomy meta field
$taxonomymetafield = get_field('year_of_birth', $term);
// display the taxonomy meta field
echo "Year of birth: ";
echo $taxonomymetafield;
?>
デモサイトでテストした結果は以下の通りです。

このチュートリアルで、WordPressのカスタムタクソノミーにカスタムメタフィールドを追加する方法を学べたことを願っています。また、WordPressでキーワードとメタディスクリプションを追加する方法を学んだり、サイトを成長させるための必須WordPressプラグインのリストを確認したりすることもできます。
この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterやFacebookでもフォローできます。


タレク・アナンダン
データが表示されない場合で、WordPress の最新バージョンを使用している場合は、get_tax_meta() の代わりに get_term_meta() を使用してください。
Subin
ここに私のコードがあります:
$config = array(
‘id’ => ‘tax_meta_box’, // メタボックスID、メタボックスごとに一意
‘title’ => ‘Tax Meta Box’, // メタボックスのタイトル
‘pages’ => array(‘category’), // タクソノミー名、categories、post_tag、カスタムタクソノミーを受け入れます
‘context’ => ‘normal’, // メタボックスが表示される場所:normal (デフォルト)、advanced、side; オプション
‘fields’ => array(), // メタフィールドのリスト(フィールド配列で追加可能)
‘local_images’ => false, // ローカルまたはホストされた画像を使用します(追加/削除用のメタボックス画像)
‘use_with_theme’ => get_template_directory_uri() . ‘/Tax-Meta-Class/Tax-meta-class’
);
/*
* メタボックスを初期化します
*/
$my_meta = new Tax_Meta_Class($config);
//画像フィールド
$my_meta->addImage(‘image_field’,array(‘name’=> __(‘My Image ‘,’tax-meta’)));
$my_meta->Finish(); ———————————————————————————————————————– term_id; $saved_data = get_tax_meta($term_id,’image_field’,true); echo "; echo $term_id; // カテゴリIDである「1」を出力します echo $saved_data; // 何も表示されません。なぜでしょう!! exit;
?>
ジェームズ・ダウワー
アップロードした画像のパスを取得するのに苦労しています。それはただエコーされます:
配列
…テキストフィールドは問題ありません。
使用しています:
$prefix = ‘ttp_’;
$my_meta->addImage($prefix.’logo_id’,array(‘name’=> __(‘Logo’,’tax-meta’)));
そして、taxonomy.phpページで:
$logo = get_tax_meta($term->term_id, ttp_logo_id);
誰か助けてくれませんか? 何時間もかかっています!
ジェームズ・ダウワー
…そして、リピーターフィールドをエコーする方法を誰か説明してもらえませんか?!
ジェームズ・ダウワー
これを読み出すのに苦労しているすべての人へ。中に迷子の apostrophe がありました。これは私には機能します:
$data = get_tax_meta($term->term_id, ba_text_field_id);
echo $data;
siva
チームの皆さん、本当にありがとうございます…
Ketan
こんにちは、
プラグインを有効にしました。しかし、管理画面のどこにカスタム分類法のフィールドを追加できるのかわかりません。返信してください。
ありがとう、
Ketan。
Francisco
Thanks a lot this has been very useful!!!!
このコードを使用して、テキストフィールドを正しく表示しました:
// スラッグで正しい分類IDを取得します
$term = get_term_by( ‘slug’, get_query_var( ‘term’ ), get_query_var( ‘taxonomy’ ) );
//タクソノミーメタを取得
$saved_data = get_tax_meta($term->term_id, 'ba_text_field_id');
echo $saved_data;
しかし、画像も表示する必要があります。テンプレートではこのPHPコードを使用しています。
// スラッグで正しい分類IDを取得します
$term = get_term_by( ‘slug’, get_query_var( ‘term’ ), get_query_var( ‘taxonomy’ ) );
//タクソノミメタを取得
$saved_data = get_tax_meta($term->term_id,’ba_image_field_id’);
echo $saved_data;
But it doesn’t display anything!
「array」という単語が1つ表示されるだけです
何が間違っている可能性がありますか?
デビッド・ビースタル
それはありがとう。チュートリアルは私の意見では不完全なようです。
ヘマンタ・チャクラダール
私もそれを探しています。
ヘマンタ・チャクラダール
行き詰まりました。
WordPressのカテゴリではメタデータオプションが見えますが、カスタムタクソノミーでは見えません。カスタムタクソノミーにカスタムメタを追加するオプションをどこに追加できますか?それはどこで定義されていますか?
マルコ・パニキ
1人以上のユーザーを選択するために、複数のチェックボックスを追加するにはどうすればよいですか?
Ankur
こんにちは、マルコさん。何か回答はありましたか?私も同じ機能を探しています。
ジョー・チョウ
どうもありがとうございます。投稿カテゴリに多くのフィールドが表示されているのがわかります。しかし、私はWooCommerceの製品カテゴリにのみ使用する方法を知りたいです。
誰かヒントをくれませんか?
Joe
taxonomy.phpページではなく、カスタムページテンプレートでタクソノミー情報を取得するにはどうすればよいですか?
ジェイソン・ゲーテマン
このチュートリアルをありがとうございます!タクソノミーページだけでなく、作成したカスタム投稿ページにメタを表示するにはどうすればよいですか?
AD
皆さん、こんにちは。
保存されたコンテンツの表示に問題がある方へ。キーの前にプレフィックスを使用してください。
//タクソノミーメタを取得
$saved_data = get_tax_meta($term->term_id,’text_field_id’);
echo $saved_data;
接頭辞がba_であると仮定すると、ba_text_field_idであるはずです。
お役に立てば幸いです。
Dan
このコメントに賛成します。例が機能しない理由を理解するのは非常に難しい場合があります。 「Tax meta class」ファイルを見ると、Ohadが各保存関数に追加される$prefix変数を定義していることがわかります。
結果をエコーするには、プレフィックスを含める必要があります。プレフィックスは「」を含む任意の文字列に設定できます。私は「ba_」が何を表すのか知りませんが、デフォルトではそれが設定されています。
例は次のようになります:
$saved_data = get_tax_meta($term->term_id,’ba_text_field_id’);
Chris
どうもありがとうございます!うまく機能します。コーディングの時間を大幅に節約できました。
Ante
OK、行き詰まりました。
//スラッグで正しいタクソノミーIDを取得
$term = get_term_by( ‘slug’, get_query_var( ‘term’ ), get_query_var( ‘taxonomy’ ) );
//タクソノミーメタを取得
$saved_data = get_tax_meta($term->term_id,’text_field_id’);
echo $saved_data;
「taxonomy」はカスタムタクソノミーで、「project_clients」としましょう。
「text_field_id」は入力フィールドのIDで、$prefix.'text_area'…
「term」とは何ですか????
Steve
Ante、
これに関して何か進捗はありましたか?
私も同じ質問をしています。多くのコメントやページを読みましたが、解決策が見つかりません。もし答えを見つけたら、どんな助けでも感謝します。
taxonomy.phpファイルに以下を追加するだけでは機能しません:
//スラッグで正しいタクソノミーIDを取得
$term = get_term_by( ‘slug’, get_query_var( ‘term’ ), get_query_var( ‘taxonomy’ ) );
//タクソノミーメタを取得
$saved_data = get_tax_meta($term->term_id,’text_field_id’);
echo $saved_data;
fp-admin
WYSIWYGに入力したものをウェブサイトのフロントエンドに追加しようとしています。正直、何をしているのか全く分かりませんが、今のところ私のコードは以下の通りです:
term_id,’wysiwyg_field_id’);
?>
<a href="”>
ELiane
こんにちは、
プラグインを使用しましたが、分類法の PHP にコードを取得できません。
フィールドを表示するためにこのコードを使用します
term_id,’text_field_id’);
echo $saved_data;
?>
他に何かする必要がありますか?
ありがとう
WPBeginnerサポート
はい、上記の説明通りにすべての手順に従っていれば、機能するはずです。
管理者
Tejas Deshmukh
こんにちは、このアイデアに特に感謝します。このプラグインは驚くほど機能しています。特定のタームの追加、編集オプションに3つの追加フィールドを追加しました。しかし、そのタームでカテゴリを作成するとき、その追加の3つのフィールドの値を保存できません。何か提案はありますか?
alexut
しかし、アーカイブページからデータを取得するにはどうすればよいですか?これは一般的なリクエストなので、これも追加すべきです。
Kisshomaru
素晴らしい!「数量」を「商品」に追加する方法を探すのにどれだけの時間を費やしたか、あなたには想像もつかないでしょう。これは商業サイトではないため、食材タクソノミーに紐付けられたフード投稿の、各投稿のキュウリの数を変更できないのは煩雑でした。
ありがとうございます!
マイク・ジャクソン
こんにちは。これを機能させるのに苦労しています。カスタムタクソノミーにはデータフィールドが表示されていますが、記事の最後に貼り付けたPHPコードを使用して、brand-description.phpでデータを呼び出すことができません。エラーは表示されませんが、機能しません。
もしお時間があれば、これについてさらに詳しい説明をいただけると大変助かります。
ありがとう
マイク・ジャクソン
これはすごい発見ですね!数週間この問題を解決しようとしていました。新しいフィールドを列に追加する方法について何かアイデアはありますか?
マイク・ジャクソン
ページに何も出力するのに苦労しています。このコードを適用し、フィールドにデータがありますが、サイトには何も表示されません
term_id,’textarea_field_id’);
echo $saved_data;
?>
編集スタッフ
このコードはタクソノミーアーカイブページで機能します。表示されない場合は、コードがタクソノミーIDを取得できていない可能性があります。少なくともそれが私の推測です。
-Syed
管理者
FJ
さて、これは良さそうですね。カテゴリにはうまくいきましたが、なぜか私のカスタムタクソノミーにはうまくいきませんでした。何か見落としましたか?見ていないフックはありますか?
とにかく、オハドの仕事についての啓発的なお話、本当にありがとうございました。どうすればうまく使えるのか不思議に思って、その周りをうろうろしていました。私は単なるDIYタイプで、本当の開発者ではありません。もうお分かりかと思いますが。
改めて感謝します。
編集スタッフ
example-usage.php の 24 行目で、カスタムタクソノミーを指定できるはずです。
管理者
ベン
明確にするために – taxonomy-fields.php の 24 行目
‘pages’ => array(‘category’), // taxonomy name, accept categories, post_tag and custom taxonomies
XXX をカスタムタクソノミーの名前に変更してください
‘pages’ => array(‘xxxxx’), // taxonomy name, accept categories, post_tag and custom taxonomies
Kobbe
@エディター様、申し訳ありませんが、テキストフィールドを出力するにはどうすればよいですか?
編集スタッフ
共有したPHPコードを使用する必要があります。フィールド名をあなたが持っているものに変更してください。
管理者
Kobbe
編集者様、返信ありがとうございます。これは class-usage-demo.php の例です – http://pastebin.com/ctZPeS0w
これが私のやっていることですが、何も表示/出力されません。何が間違っていますか?また、テーマのどこかにコードを表示することは可能ですか(可能であれば)…よろしくお願いします。
編集スタッフ
あなたが持っているコードは、単に管理画面の設定を行っているだけです。コードを表示するには、記事で共有したPHPコードを見てください。それをタクソノミーアーカイブファイルで使用する必要があります。
ガウラヴ・カウシク
クールですね..
でも、どこにデータを保存するのですか…? postmetaテーブルに保存するのですか、それとも新しいテーブルを作成するのですか?
編集スタッフ
オプションテーブルにあります。
管理者
Gaurav Kaushik
このプラグインのバックエンドを変更できますか?つまり、タームメタテーブル(meta_id、term_id、meta_key、meta_value)を作成し、タクソノメタをここに保存したいのですが…またはこのプラグインと連携させたいのですが? http://wordpress.org/extend/plugins/simple-term-meta/
Jim
クールですね。将来的に私たちのブログに実装します。
Michelle
Oh thanks you so much, I’ve been wondering how to identify tags as being English or Spanish for my bilingual site – this helps enormously
Jaime
私はちょうど今、現在取り組んでいるプロジェクトのために、カスタムタクソノミーのカスタムフィールドのコーディングを終えたところです。柔軟性が気に入っています。今後のプロジェクトでこのプラグインを必ずチェックします!
編集スタッフ
はい、それが一番良いところです。私たちは、開発者の生活をはるかに楽にするこのようなライブラリにつまずくのが大好きです。
管理者