WordPressで通常の投稿かカスタム投稿か判断してカテゴリー名を表示する方法

custom-post-category-thumbnail

普段使い慣れないカスタム投稿タイプを使ったところ、普通のカスタマイズと勝手が違い四苦八苦しております。

今回はそのなかでもだいぶはまった「カスタム投稿でのカスタムタクソノミーの表示」について備忘録といたします。

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

WordPressの記事一覧や投稿ページに記事のカテゴリー名を表示している方は多いはずです。

[php]
<?php the_category(); ?>
[/php]

通常、投稿のカテゴリーを表示するときはこちらのテンプレートタグを使うかと思いますが、カスタム投稿のカテゴリーはこれでは表示されません。

そもそもカスタム投稿のカテゴリーは見た目はカテゴリーではあるものの、カテゴリーのそれとはまた違っており、これを「カスタムタクソノミー」というものに分類します。

なにいってるかわかりませんね。わたしも書いていてさっぱりわかりません┐(^-^;)┌

でもとにかくカテゴリーとは違うものなのです!

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

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

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

http://techacademy.jp/

このように見た目はカテゴリーやタグとまったく変わりません。投稿する分には問題ないのですが、内部構造違うためにカスタマイズが厄介なのです。

カスタム投稿タイプをまだ作っていない方はこちらが参考になります。

結論:それぞれのタグでコードを分岐させる

ググってはいろいろなコードを試してかなり時間を取られましたが、結論としては投稿のカテゴリーを表示するタグとカスタム投稿のカスタムタクソノミーを表示するタグを分岐させるコードを作ることで成功しました。

表示したいところに以下のコードを埋めます。

[php]
//カテゴリー名かカスタムタクソノミー名か判断して表示する
<?php if (get_post_type()==’post’) : echo get_the_term_list( $post->ID, ‘category’); else : echo get_the_term_list( $post->ID, ‘任意のカスタムタクソノミー名’); endif; ?>
[/php]

「任意のカスタムタクソノミー名」のところは各自作ったものを入れてください。

カスタムタクソノミーの定義名とカスタムタクソノミーは違います。参考サイトを例にすると「任意のカスタムタクソノミー名」に入るのはkansoではなくwashokuやchineseとなります。

以上で間違っていなければ分岐によりカスタム投稿のカテゴリーが表示されるはずです。

custom-post-category-thumbnail
この記事が良かったら、いいねして
最新記事をチェックしてください!

Twitterで

コメントを残す

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

内容をご確認の上、送信してください。

日本語が含まれない投稿は無視されます。(スパム対策)