どもです。
爪が痛い餅。です。
筋肉痛はまだ来ません(´・ω・`)
今回はカスタム投稿について。
カスタム投稿を一般の投稿と同じように扱うとき、欲しい機能のひとつがサイドバーのカテゴリ一覧だと思います。
そこで調べてみたところ、
「指定の投稿タイプのカテゴリ一覧を表示」はありましたが、
「現在の投稿タイプのカテゴリ一覧を表示」はありませんでした。
ので、作ってみました。
<ul>
<?php $customPostType = get_post_type();?>
<?php wp_list_categories(array('title_li' => '', 'taxonomy' => $customPostType.'_ca') ); ?>
</ul>
<?php $customPostType = get_post_type();?>
<?php wp_list_categories(array('title_li' => '', 'taxonomy' => $customPostType.'_ca') ); ?>
</ul>
以上。
wp_list_categoriesを使っているので、カスタムはカテゴリのときと同じようにできると思います。
注意点としましては、$customPostType.'_ca'のところ。
僕はカスタム投稿のカテゴリ名をいつも「カスタム投稿名_ca」で作っているのでこうなっていますが、ここに記載するのはfunctions.phpに記載した「カスタム投稿のカテゴリ分類名」です。
ですので、このやり方はカスタム投稿のカテゴリ分類名を「カスタム投稿名+任意の文字列」で作っている場合にのみ有効といえます。その場合、'_ca'のところを設定した語尾に変更してください。
また、
<ul>
<?php $customPostType = get_post_type();?>
<?php wp_list_categories(array('title_li' => '', 'taxonomy' => $customPostType.'_ca') ); ?>
<?php if ($customPostType == 'post'): ?>
<?php wp_list_categories(array('title_li' => '') ); ?>
<?php endif; ?>
</ul>
<?php $customPostType = get_post_type();?>
<?php wp_list_categories(array('title_li' => '', 'taxonomy' => $customPostType.'_ca') ); ?>
<?php if ($customPostType == 'post'): ?>
<?php wp_list_categories(array('title_li' => '') ); ?>
<?php endif; ?>
</ul>
と追記すると、
「通常の投稿」と「カスタム投稿」のどちらにも対応したカテゴリ一覧が作れます。
通常の投稿を表示する場合には条件分岐をつけてあげてください。
でないと、post投稿のページにはカスタム投稿のカテゴリは表示されませんが、カスタム投稿のページにはpostの投稿のカテゴリが表示されてしまいます。