WordPressでカスタム分類にカスタムメタフィールドを追加する方法

WordPressでさらに多くの整理機能を利用したいですか?カスタム分類法にカスタムメタフィールドを追加してみてください。

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

この記事では、WordPress のカスタム分類法にメタフィールドを追加する方法を説明します。

WordPressでカスタム分類にカスタムメタフィールドを追加する方法

カスタムタクソノミーにカスタムメタフィールドを追加するのはいつですか?

WordPressウェブサイトで新しいコンテンツを作成するときは、デフォルトの2つのタクソノミーであるカテゴリとタグを使用して整理できます。

一部のウェブサイトでは、カスタムタクソノミーを使用することでメリットが得られます。これにより、コンテンツをさらに多くの方法で並べ替えることができます。

例えば、書籍レビューを投稿するウェブサイトでは、「主題」と「著者」というタクソノミーを追加して、訪問者が興味のあるレビューをすばやく見つけられるようにすることができます。

詳細については、WordPress でカスタム分類法を作成する方法に関するガイドを参照してください。

各タクソノミーには、デフォルトで名前、スラッグ、親(階層化されている場合)、説明の3つまたは4つのフィールドしかありません。

タクソノミーにはデフォルトで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チャンネルを購読してください。 TwitterFacebookでもフォローできます。

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

45 CommentsLeave a Reply

  1. データが表示されない場合で、WordPress の最新バージョンを使用している場合は、get_tax_meta() の代わりに get_term_meta() を使用してください。

  2. ここに私のコードがあります:
    $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;

    ?>

  3. アップロードした画像のパスを取得するのに苦労しています。それはただエコーされます:

    配列

    …テキストフィールドは問題ありません。

    使用しています:

    $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);

    誰か助けてくれませんか? 何時間もかかっています!

    • …そして、リピーターフィールドをエコーする方法を誰か説明してもらえませんか?!

  4. これを読み出すのに苦労しているすべての人へ。中に迷子の apostrophe がありました。これは私には機能します:

    $data = get_tax_meta($term->term_id, ba_text_field_id);
    echo $data;

  5. こんにちは、

    プラグインを有効にしました。しかし、管理画面のどこにカスタム分類法のフィールドを追加できるのかわかりません。返信してください。

    ありがとう、
    Ketan。

  6. Thanks a lot this has been very useful!!!! :D

    このコードを使用して、テキストフィールドを正しく表示しました:
    // スラッグで正しい分類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つ表示されるだけです

    何が間違っている可能性がありますか?

  7. 行き詰まりました。

    WordPressのカテゴリではメタデータオプションが見えますが、カスタムタクソノミーでは見えません。カスタムタクソノミーにカスタムメタを追加するオプションをどこに追加できますか?それはどこで定義されていますか?

  8. どうもありがとうございます。投稿カテゴリに多くのフィールドが表示されているのがわかります。しかし、私はWooCommerceの製品カテゴリにのみ使用する方法を知りたいです。

    誰かヒントをくれませんか?

  9. taxonomy.phpページではなく、カスタムページテンプレートでタクソノミー情報を取得するにはどうすればよいですか?

  10. このチュートリアルをありがとうございます!タクソノミーページだけでなく、作成したカスタム投稿ページにメタを表示するにはどうすればよいですか?

  11. 皆さん、こんにちは。

    保存されたコンテンツの表示に問題がある方へ。キーの前にプレフィックスを使用してください。

    //タクソノミーメタを取得
    $saved_data = get_tax_meta($term->term_id,’text_field_id’);
    echo $saved_data;

    接頭辞がba_であると仮定すると、ba_text_field_idであるはずです。

    お役に立てば幸いです。

    • このコメントに賛成します。例が機能しない理由を理解するのは非常に難しい場合があります。 「Tax meta class」ファイルを見ると、Ohadが各保存関数に追加される$prefix変数を定義していることがわかります。

      結果をエコーするには、プレフィックスを含める必要があります。プレフィックスは「」を含む任意の文字列に設定できます。私は「ba_」が何を表すのか知りませんが、デフォルトではそれが設定されています。

      例は次のようになります:
      $saved_data = get_tax_meta($term->term_id,’ba_text_field_id’);

  12. 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」とは何ですか????

    • 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;

  13. WYSIWYGに入力したものをウェブサイトのフロントエンドに追加しようとしています。正直、何をしているのか全く分かりませんが、今のところ私のコードは以下の通りです:

    term_id,’wysiwyg_field_id’);

    ?>

    <a href="”>

  14. こんにちは、

    プラグインを使用しましたが、分類法の PHP にコードを取得できません。

    フィールドを表示するためにこのコードを使用します

    term_id,’text_field_id’);
    echo $saved_data;

    ?>
    他に何かする必要がありますか?

    ありがとう

  15. こんにちは、このアイデアに特に感謝します。このプラグインは驚くほど機能しています。特定のタームの追加、編集オプションに3つの追加フィールドを追加しました。しかし、そのタームでカテゴリを作成するとき、その追加の3つのフィールドの値を保存できません。何か提案はありますか?

  16. しかし、アーカイブページからデータを取得するにはどうすればよいですか?これは一般的なリクエストなので、これも追加すべきです。

  17. 素晴らしい!「数量」を「商品」に追加する方法を探すのにどれだけの時間を費やしたか、あなたには想像もつかないでしょう。これは商業サイトではないため、食材タクソノミーに紐付けられたフード投稿の、各投稿のキュウリの数を変更できないのは煩雑でした。
    ありがとうございます!

  18. こんにちは。これを機能させるのに苦労しています。カスタムタクソノミーにはデータフィールドが表示されていますが、記事の最後に貼り付けたPHPコードを使用して、brand-description.phpでデータを呼び出すことができません。エラーは表示されませんが、機能しません。

    もしお時間があれば、これについてさらに詳しい説明をいただけると大変助かります。

    ありがとう

  19. これはすごい発見ですね!数週間この問題を解決しようとしていました。新しいフィールドを列に追加する方法について何かアイデアはありますか?

    • ページに何も出力するのに苦労しています。このコードを適用し、フィールドにデータがありますが、サイトには何も表示されません

      term_id,’textarea_field_id’);
      echo $saved_data;

      ?>

      • このコードはタクソノミーアーカイブページで機能します。表示されない場合は、コードがタクソノミーIDを取得できていない可能性があります。少なくともそれが私の推測です。

        -Syed

        管理者

  20. さて、これは良さそうですね。カテゴリにはうまくいきましたが、なぜか私のカスタムタクソノミーにはうまくいきませんでした。何か見落としましたか?見ていないフックはありますか?
    とにかく、オハドの仕事についての啓発的なお話、本当にありがとうございました。どうすればうまく使えるのか不思議に思って、その周りをうろうろしていました。私は単なるDIYタイプで、本当の開発者ではありません。もうお分かりかと思いますが。
    改めて感謝します。

      • 明確にするために – 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

      • 編集者様、返信ありがとうございます。これは class-usage-demo.php の例です – http://pastebin.com/ctZPeS0w

        これが私のやっていることですが、何も表示/出力されません。何が間違っていますか?また、テーマのどこかにコードを表示することは可能ですか(可能であれば)…よろしくお願いします。

        • あなたが持っているコードは、単に管理画面の設定を行っているだけです。コードを表示するには、記事で共有したPHPコードを見てください。それをタクソノミーアーカイブファイルで使用する必要があります。

  21. クールですね..
    でも、どこにデータを保存するのですか…? postmetaテーブルに保存するのですか、それとも新しいテーブルを作成するのですか?

  22. 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 :-)

  23. 私はちょうど今、現在取り組んでいるプロジェクトのために、カスタムタクソノミーのカスタムフィールドのコーディングを終えたところです。柔軟性が気に入っています。今後のプロジェクトでこのプラグインを必ずチェックします!

返信する

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。