WordPressの投稿とカスタム投稿でカテゴリー表示を分岐する
2016年5月23日
2017年3月15日
WordPress
WordPress
まこと先生
ブログのお知らせをカスタム投稿で投稿しているのですが、カテゴリーが表示できないんです。なぜなんでしょう?
おそらく、
<?php the_category(); ?>
で表記してしまっているのが原因です。カスタム投稿ではこれだとカテゴリーは表示されませんやまかわ
まこと先生
ははぁ~、つまりカスタム投稿用の決まったコードがあるということですね?
その通りです。カスタム投稿のカテゴリーは、通常のカテゴリーとは扱いの違うカスタムタクソノミーというものに分類されているため、表示するためのコードが違うんです
やまかわ
まこと先生
そういうことなんですね!納得です!
それでは今回は、カスタム投稿でカテゴリーを表示する方法を紹介しますね
やまかわ
投稿のカテゴリーとカスタム投稿のカテゴリーは別物
WordPressでこのようにカテゴリーを表示している方は多いでしょう。
投稿のカテゴリーを表示するには、こちらのテンプレートタグを使います。
<?php the_category(); ?>
ですが、カスタム投稿のカテゴリーはこれでは表示されません。
カスタム投稿のカテゴリーは、「カスタムタクソノミー」というものに分類されており、違うコードを書く必要があるのです。
以下の説明がわかりやすかったので引用させていただきました。
カスタムタクソノミーとは、カスタム分類とも呼ばれる機能です。これは、カスタム投稿タイプにとってのカテゴリーやタグにあたります。
最初の設定さえしてしまえば、カテゴリーやタグとほぼ同じように扱えます。
例えば、カスタム投稿タイプで「グルメ感想」というレビュー集を作っていた場合、そのタクソノミーとして「和食」「洋食」「中華」などを設定するイメージです。
投稿とカスタム投稿で表示を分岐させる
カテゴリーとカスタムタクソノミーの表示を分岐させる方法を紹介します。
カテゴリーを表示したい箇所に以下を追加してください。
<?php if (get_post_type()=='post') : echo get_the_term_list( $post->ID, 'category'); else : echo get_the_term_list( $post->ID, 'カスタムタクソノミー名'); endif; ?>
これで、通常の投稿ページではカテゴリーが、カスタム投稿のページではカスタムタクソノミーが表示されるようになります。