WordPressの投稿とカスタム投稿でカテゴリー表示を分岐する

custom-post-category-thumbnail
まこと先生
ブログのお知らせをカスタム投稿で投稿しているのですが、カテゴリーが表示できないんです。なぜなんでしょう?
おそらく、<?php the_category(); ?>で表記してしまっているのが原因です。カスタム投稿ではこれだとカテゴリーは表示されません
やまかわ
まこと先生
ははぁ~、つまりカスタム投稿用の決まったコードがあるということですね?
その通りです。カスタム投稿のカテゴリーは、通常のカテゴリーとは扱いの違うカスタムタクソノミーというものに分類されているため、表示するためのコードが違うんです
やまかわ
まこと先生
そういうことなんですね!納得です!
それでは今回は、カスタム投稿でカテゴリーを表示する方法を紹介しますね
やまかわ

投稿のカテゴリーとカスタム投稿のカテゴリーは別物

WordPressでこのようにカテゴリーを表示している方は多いでしょう。

カテゴリー表示の例

カテゴリー表示の例

投稿のカテゴリーを表示するには、こちらのテンプレートタグを使います。

<?php the_category(); ?>

ですが、カスタム投稿のカテゴリーはこれでは表示されません。

カスタム投稿のカテゴリーは、「カスタムタクソノミー」というものに分類されており、違うコードを書く必要があるのです。

以下の説明がわかりやすかったので引用させていただきました。

カスタムタクソノミーとは、カスタム分類とも呼ばれる機能です。これは、カスタム投稿タイプにとってのカテゴリーやタグにあたります。

最初の設定さえしてしまえば、カテゴリーやタグとほぼ同じように扱えます。

例えば、カスタム投稿タイプで「グルメ感想」というレビュー集を作っていた場合、そのタクソノミーとして「和食」「洋食」「中華」などを設定するイメージです。

引用元WordPressでカスタムタクソノミーを設定する方法【初心者向け】 | TechAcademyマガジン

投稿とカスタム投稿で表示を分岐させる

カテゴリーとカスタムタクソノミーの表示を分岐させる方法を紹介します。

カテゴリーを表示したい箇所に以下を追加してください。

<?php if (get_post_type()=='post') : echo get_the_term_list( $post->ID, 'category'); else : echo get_the_term_list( $post->ID, 'カスタムタクソノミー名'); endif; ?>

これで、通常の投稿ページではカテゴリーが、カスタム投稿のページではカスタムタクソノミーが表示されるようになります。

おすすめ関連書籍

コメントを残す

入力エリアすべてが必須項目です。
メールアドレスが公開されることはありません。

承認制のため反映にお時間をいただきます。