WordPressでカスタムタクソミーを作成する方法

カテゴリとタグを使えば、WordPress コンテンツの整理は簡単です。しかし、長年 WordPress サイトを構築してきた経験から、デフォルトのカテゴリとタグだけでは完璧なコンテンツ構造を作成するには十分ではないことがわかりました。

カスタムタクソノミーはそこで役立ちます。カスタムタクソノミーを使用すると、コンテンツを並べ替えたりグループ化したりするための独自の方法を作成できます。

レシピの材料から不動産リストまで、あらゆるものを整理するために使用しており、投稿、製品、その他のコンテンツのカテゴリ分け方法について、信じられないほどの制御と柔軟性を提供します。

このガイドでは、プラグインを使用する場合でも、手動で行う場合でも、WordPress でカスタムタクソノミーを作成する方法を説明します。

WordPressでカスタム分類を作成する方法

WordPressのタクソノミーとは?

WordPress のタクソノミーは、投稿やカスタム投稿タイプのグループを整理する方法です。

デフォルトでは、WordPress には カテゴリとタグ という 2 つのタクソノミーが付属しています。これらを使用してブログ投稿を整理できます。

ただし、カスタム投稿タイプを使用する場合、カテゴリやタグはすべてのコンテンツに適さない場合があります。

例えば、「書籍」という名前のカスタム投稿タイプを作成し、「トピック」という名前のカスタムタクソノミーでソートすることができます。その後、「アドベンチャー」、「ロマンス」、「ホラー」などのトピック用語や、その他の書籍のトピックを追加できます。

これにより、あなたと読者は各トピックで書籍を簡単に並べ替えたりフィルタリングしたりできるようになります。

分類は階層的であることもできます。つまり、「フィクション」や「ノンフィクション」のような主要なトピックや親トピックを持つことができます。次に、各カテゴリの下にサブトピック、つまり子を持つことになります。

例えば、「フィクション」という親カテゴリに、「アドベンチャー」、「ロマンス」、「ホラー」を子カテゴリとして持つことができます。

カスタムタクソノミーとは何かを理解したので、WordPressでカスタムタクソノミーを作成する方法を学びましょう。

カスタムタクソノミーの作成は強力ですが、カバーすべきことがたくさんあります。これを正しく設定できるように、以下の簡単な目次を作成しました。

準備はいいですか?始めましょう!

プラグインを使用してカスタム分類を作成する(簡単な方法)

まず、Custom Post Type UI プラグインをインストールして有効化する必要があります。詳細は、WordPressプラグインのインストール方法に関するガイドをご覧ください。

このチュートリアルでは、「Books」という名前のカスタム投稿タイプをすでに作成しました。したがって、タクソノミーの作成を開始する前に、カスタム投稿タイプが作成されていることを確認してください。

次に、WordPress 管理画面の CPT UI » タクソノミーの追加/編集 に移動して、最初のタクソノミーを作成しましょう。

プラグインを使用してカスタムタクソノミーを作成する

この画面では、次の操作を行う必要があります。

  • タクソノミースラッグを作成します(これは URL に入ります)。
  • 複数形ラベルを作成
  • 単数形のラベルを作成する
  • ラベルの自動入力

最初の手順は、URL や WordPress の検索クエリで使用するタクソノミーのスラッグを作成することです。スラッグには文字と数字のみを含めることができ、自動的に小文字に変換されます。

次に、カスタムタクソノミーの複数形と単数形の名前を入力します。

そこから、「選択したラベルに基づいて追加のラベルを自動入力する」というリンクをクリックするオプションがあります。これを実行すると、プラグインが残りのラベルフィールドを自動的に入力します。

次に、「追加ラベル」セクションまでスクロールダウンします。

このエリアでは、投稿タイプの説明を提供できます。

WordPressのタクソノミーにラベルを付ける

これらのラベルは、WordPressダッシュボードで、特定のカスタムタクソノミーのコンテンツを編集および管理する際に使用されます。

次に、設定オプションがあります。この領域では、作成する各タクソノミーのさまざまな属性を設定できます。各オプションには、その機能の詳細を説明する説明があります。

カスタムタクソノミーの階層を作成する

上のスクリーンショットでは、このタクソノミーを階層的にすることを選択したことがわかります。

これは、私たちのタクソノミー「件名」にサブトピックを持たせることができることを意味します。たとえば、「フィクション」という件名には、「ファンタジー」、「スリラー」、「ミステリー」などのサブトピックを持たせることができます。

WordPressダッシュボードには、画面のさらに下に多くの設定がありますが、このチュートリアルではそのままにしておくことができます。

これで、カスタム分類を保存するために、下部にある「分類を追加」ボタンをクリックできます。

その後、WordPressコンテンツエディタでこのタクソノミーに関連付けられた投稿タイプを編集して、使用を開始できます。

投稿エディターでのタクソノミーの使用

カスタム分類を手動で作成する(コード付き)

この方法では、WordPressウェブサイトにコードを追加する必要があります。まだ行ったことがない場合は、WordPressにコードスニペットを簡単に追加する方法に関するガイドをお読みになることをお勧めします。

WordPressファイルを直接編集することは推奨しません。わずかな間違いでもサイト全体が壊れる可能性があります。そのため、最も簡単で安全なコードスニペットプラグインであるWPCodeの使用を全員に推奨します。

まず、無料のWPCodeプラグインをインストールして有効化する必要があります。詳細な手順については、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。

1.階層的なタクソノミーの作成

カテゴリのように機能し、親タームと子タームを持つことができる階層型タクソノミーから始めましょう。

WPCode をインストールして有効化したら、WordPress のダッシュボードで コードスニペット » + スニペットを追加 に移動できます。

ここから、「カスタムコードを追加(新規スニペット)」にマウスカーソルを合わせ、「+カスタムスニペットを追加」ボタンをクリックします。

WPCodeでカスタムコードを追加する

次に、画面に表示されるオプションのリストからコードタイプを選択する必要があります。

このチュートリアルでは、「PHPスニペット」を選択します。

コードの種類としてPHPスニペットを選択

次に、「カスタムスニペットの作成」ページに移動します。

まず、新しいコードスニペットの名前を入力します。これは、コードが何のためのものかを覚えておくのに役立つものであれば何でも構いません。

スニペット名を入力し、コードを貼り付けて階層化タクソノミーを作成します

その後、以下のコードを「コードプレビュー」エリアに貼り付けるだけです。

//hook into the init action and call create_book_taxonomies when it fires
 
add_action( 'init', 'create_subjects_hierarchical_taxonomy', 0 );
 
//create a custom taxonomy name it subjects for your posts
 
function create_subjects_hierarchical_taxonomy() {
 
// Add new taxonomy, make it hierarchical like categories
//first do the translations part for GUI
 
  $labels = array(
    'name' => _x( 'Subjects', 'taxonomy general name' ),
    'singular_name' => _x( 'Subject', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Subjects' ),
    'all_items' => __( 'All Subjects' ),
    'parent_item' => __( 'Parent Subject' ),
    'parent_item_colon' => __( 'Parent Subject:' ),
    'edit_item' => __( 'Edit Subject' ), 
    'update_item' => __( 'Update Subject' ),
    'add_new_item' => __( 'Add New Subject' ),
    'new_item_name' => __( 'New Subject Name' ),
    'menu_name' => __( 'Subjects' ),
  );    
 
// Now register the taxonomy
  register_taxonomy('subjects',array('books'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'show_in_rest' => true,
    'show_admin_column' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'subject' ),
  ));
 
}

スニペット内のタクソノミー名とラベルを、ご自身のタクソノミーラベルに置き換えるのを忘れないでください。このタクソノミーが「Books」投稿タイプに関連付けられていることにも気づくでしょう。これを、使用したい投稿タイプに変更する必要があります。

次に、下にスクロールして、「挿入」ボックスで「自動挿入」と「すべて実行」が選択されていることを確認してください。

WPCode どこでも実行

これで、ページの上部までスクロールバックし、スイッチを「非アクティブ」から「アクティブ」に切り替えることができます。

最後に、「スニペットを保存」ボタンをクリックして、変更をライブに反映させてください。

カスタムコードスニペットを有効化して保存する

2. 非階層的な分類の作成

タグのような階層化されていないカスタムタクソノミーを作成するには、WPCodeを使用し、上記とまったく同じ手順に従います。

代わりに、このコードを使用します。

//hook into the init action and call create_topics_nonhierarchical_taxonomy when it fires
 
add_action( 'init', 'create_topics_nonhierarchical_taxonomy', 0 );
 
function create_topics_nonhierarchical_taxonomy() {
 
// Labels part for the GUI
 
  $labels = array(
    'name' => _x( 'Topics', 'taxonomy general name' ),
    'singular_name' => _x( 'Topic', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Topics' ),
    'popular_items' => __( 'Popular Topics' ),
    'all_items' => __( 'All Topics' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Edit Topic' ), 
    'update_item' => __( 'Update Topic' ),
    'add_new_item' => __( 'Add New Topic' ),
    'new_item_name' => __( 'New Topic Name' ),
    'separate_items_with_commas' => __( 'Separate topics with commas' ),
    'add_or_remove_items' => __( 'Add or remove topics' ),
    'choose_from_most_used' => __( 'Choose from the most used topics' ),
    'menu_name' => __( 'Topics' ),
  ); 
 
// Now register the non-hierarchical taxonomy like tag
 
  register_taxonomy('topics','books',array(
    'hierarchical' => false,
    'labels' => $labels,
    'show_ui' => true,
    'show_in_rest' => true,
    'show_admin_column' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'topic' ),
  ));
}

2つのコードスニペットの違いに注意してください。register_taxonomy()関数の下で、hierarchical引数の値は、カテゴリのような分類ではtrueに、タグのような分類ではfalseに設定されています。

また、階層化されないタクソノミーのラベル配列には、parent_item および parent_item_colon 引数に null を追加しました。これは、親アイテムまたはサブトピックを持つことができるタクソノミーを作成するために UI に何も表示されないことを意味します。

投稿エディターでのタクソノミー

カスタムタクソミーラベルに独自のものを追加するように、コードを編集してください。

カスタム分類の表示

カスタムタクソノミーを作成し、いくつかの用語を追加しましたが、WordPressテーマにはまだ表示されません。

それらを表示するには、WordPressテーマまたは子テーマにコードを追加する必要があります。具体的には、タームを表示したいテンプレートファイルにこのコードを追加する必要があります。

このスニペットを single.phpcontent.phparchive.php、または index.php などのテーマファイルに手動で追加できます。編集する必要があるファイルを見つけるには、ステップバイステップの手順について、WordPress テンプレート階層 のガイドを参照してください。

ただし、正しく行われないとサイトが破損する可能性があるため、無料のWPCodeプラグインの使用を再度お勧めします。

用語を表示したい場所に次のコードを追加する必要があります。

<?php the_terms( $post->ID, 'topics', 'Topics: ', ', ', ' ' ); ?>

次に、上記の手順に従ってスニペットを WPCode に貼り付けるだけです。

挿入の下で、「場所」の横にあるドロップダウンをクリックし、投稿の前、後、または段落の間など、分類をどこに表示したいかを選択します。

WPCodeで挿入場所を選択

このチュートリアルでは、「投稿の後に挿入」を選択します。

下の画像で、ライブサイトにどのように表示されるかを確認できます。

カスタムタクソノミーの表示

カスタム投稿のための分類の追加

カスタムタクソノミーの作成方法がわかったので、例を使って実際に使ってみましょう。

タクソノミーを作成し、「ノンフィクション」と名付けます。カスタム投稿タイプに「書籍」という名前があるので、通常のブログ投稿を作成するのと似ています。

WordPressダッシュボードで、書籍 » 科目に移動して、用語または科目を追加できます。

新しく作成したカスタムタクソノミーのタームを追加する

この画面には、4つの領域が表示されます。

  • 名前
  • スラッグ
  • 説明

名前フィールドに、追加したいタームを記述します。スラッグ部分はスキップして、この特定のタームの説明を提供できます。

最後に、「新しい件名を追加」ボタンをクリックして、新しいタクソノミーを作成します。

追加した新しいタームは、右側の列に表示されるはずです。

用語が追加されました

これで、ブログ投稿で使用できる新しい用語ができました。特定の投稿タイプの下でコンテンツを編集または作成している間に、用語を直接追加することもできます。

単純に 書籍 » 新規追加 にアクセスして投稿を作成します。

投稿エディターの右側の列で、タームを選択または新規作成するオプションが見つかります。

新しいタームの追加または既存のタームからの選択

用語を追加したら、そのコンテンツを公開できます。

そのタームに分類されたすべての投稿は、独自の URL を使用してウェブサイトでアクセスできます。たとえば、「フィクション」という件名に分類された投稿は、次の URL に表示されます。

https://example.com/subject/fiction/

タクソノミーテンプレートプレビュー

カスタムタクソノミーを作成したら、ウェブサイトのナビゲーションメニューに表示したくなるかもしれません。

外観 » メニューに移動し、画面左側に表示されるカスタムタクソノミータブの下に追加したいタームを選択します。

ナビゲーションメニューにタームを追加する

設定を保存するには、「メニューを保存」ボタンをクリックすることを忘れないでください。

これで、ウェブサイトにアクセスして、メニューが機能していることを確認できます。

ナビゲーションメニューにカスタムタクソノミーを追加する

詳細については、WordPress でドロップダウンメニューを作成する方法 に関するステップバイステップガイドを参照してください。

動画チュートリアル

カスタムタクソノミーの作成方法を動画で学びたい場合は、こちらのチュートリアル動画をご覧ください。

WPBeginnerを購読する

ボーナス:WordPressタクソノミーをさらに活用する

カスタムタクソノミーを使用すると、さまざまなことができます。たとえば、サイドバーウィジェットに表示したり、各タームに画像アイコンを追加したりできます。

カスタム分類のRSS購読を追加することもでき、ユーザーが個々のタームを購読できるようにします。そうすれば、読者は自分にとって重要な特定のコンテンツに関する更新のみを受け取ることができます。

カスタムタクソノミーページのレイアウトをカスタマイズしたい場合は、SeedProdを確認できます。これは、コーディングなしでカスタムレイアウトを作成できる最高のドラッグ&ドロップWordPressページビルダーおよびテーマビルダーです。

3列レイアウトを選択

詳細については、WordPressでカスタムページを作成する方法に関する記事をご覧ください。

この記事が、WordPressでカスタムタクソノミーを作成する方法を学ぶのに役立ったことを願っています。また、WordPressでタクソノミー画像(カテゴリーアイコン)を追加する方法WordPressカテゴリーの変更、移動、削除を正しく行う方法に関するガイドもご覧ください。

この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterFacebookでもフォローできます。

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

究極のWordPressツールキット

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

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

112 CommentsLeave a Reply

  1. 明確な指示をありがとうございます。サイトのチュートリアル用に独自のタクソノミーを作成したいと思います。このチュートリアルは素晴らしく明確で、感謝しています。

  2. こんにちは。
    この部分が理解できません:

    ID, ‘topics’, ‘Topics: ‘, ‘, ‘, ‘ ‘ ); ?>

    ループ-single.php にその部分をそのまま貼り付ければいいのでしょうか?
    「writer」という名前のタクソノミーを使用しています。

  3. こんにちは。
    あなたの記事を参考に、階層型と非階層型のタクソノミーを関連付けた CPT を作成しました。いくつかのエントリを作成し、すべて正常に動作しているようです。どちらのタクソノミーもそれぞれのアーカイブページに問題なく表示されています。ただし、メニューにタクソノミーを追加しようとしたときに気づいたのですが、非階層型タクソノミーは「メニュー項目を追加」列に表示されましたが、階層型タクソノミーは表示されませんでした。
    これは予期された動作でしょうか?もしそうでない場合、何が問題になっている可能性がありますか?
    ありがとうございます。

    • 最も一般的な問題としては、タクソノミーに公開されたコンテンツがあることを確認し、別のコンテンツタイプを追加して、タクソノミーの問題なのか、それとも他の問題なのかをテストすることをお勧めします。

      管理者

  4. この行は何をしますか
    ‘menu_name’ => __( ‘Subjects’ ),

    これはメニューにタクソノミーを追加するためですか

    • ユーザーに対して非表示になっていないことを確認するために、設定を確認する必要があります。

      管理者

  5. このチュートリアル、特にカスタムタクソノミーを表示する方法の部分は、まさに救世主でした!私は非常に初心者で、コーディングでどこが間違っていたのかを理解するのに非常に役立ちました。

    ありがとうございます!!!

  6. 素晴らしいチュートリアルです!質問が一つあります。新しいタクソノミーのスラッグを、カテゴリのようにパーマリンクとして使用するにはどうすればよいですか(/%category%/%year%/%monthnum%/%day%/%postname%/)

    /%custom_taxonomy%/%year%/%monthnum%/%day%/%postname%/ のようなものが欲しいです。

    404エラーがずっと出ています

    • それは WordPress がデフォルトで許可するものではなく、設定するにはカスタムコーディングが必要になります。

      管理者

  7. プラグイン方式を試しましたが、カスタム投稿タイプに新しいカテゴリが正常に作成されましたが、タグや他のカテゴリのように投稿に表示されません。助けていただけますか?

    • 分類を含めるように表示をカスタマイズするために、特定のテーマのサポートに問い合わせる必要があります。

      管理者

  8. 私はポッドキャストネットワークを作成しており、単一のサイトに複数のポッドキャストがあり、各ポッドキャストの下にエピソードがあります。これはそのような用途に使えますか?マルチサイトルートにはしたくありません。

    • もちろん、必要に応じてこれを使用することもできますし、あるいは好みに応じてカスタム投稿タイプを作成するという選択肢もあります。

      管理者

  9. カスタム投稿タイプにカスタム分類を追加することは可能ですか?

    私はカスタム製品(飲み物)を作成し、国、素材などのいくつかのタクソノミーを持っています。

    ユーザーがドリンクをクリックしたときに、そのタクソノミーのみが表示されるようにしたいのですが、可能ですか?

  10. こんにちは。
    この記事ありがとうございます。このコードを使用した後、404ページが表示されるのですが、手伝っていただけますか?

  11. このコードは仕事で使っているサイトでうまく機能しています。サイトのRSSフィードにカスタム分類を追加する方法を教えていただけますか?

  12. この投稿をしていただきありがとうございます。これが実際に説明していて、納得のいく最初のサイトでした。ハハ。これで私は幸せなキャンパーです。

  13. カスタムタクソノミー(チェックボックスリスト)を投稿編集画面に、カテゴリーやタグのように表示するにはどうすればよいですか?

    • カスタムタクソミーの作成に使用した方法によって異なります。プラグインを使用している場合は、ブロックエディターで表示するために`show_in_rest`が`true`に設定されていることを確認するために、プラグインのサポートに問い合わせる必要があります。

      管理者

      • いいえ、プラグインは使用していません。スニペットをコピー&ペーストしただけです。新しいタクソノミーが作成されます。しかし、カテゴリーやタグが右側のパネルに表示されるように、投稿編集画面に表示されません。

        カスタムタクソノミーを投稿編集画面に表示するにはどうすればよいか、教えていただけますか?

        • register_taxonomy 配列で、まず以下のコードで新しい行を追加したいと思うでしょう:
          ‘show_in_rest’ => true,

  14. この投稿の前半は全く役に立ちません。Simple Taxonomyプラグインは現在のWordPressバージョンでは動作せず、4年間更新されていません。

    別のプラグインを探して、そのセクションを新しいものに変更してみてください。

返信を残す

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