雨過天晴

タグ一覧に同じカテゴリーのタグだけを記事数付きで表示

2016.06.04

img from: pakutaso

この記事は2016年6月4日に書かれたものです。古い内容や非推奨要素を含む可能性がありますのでご注意ください。

ちょろっとメモ。
カテゴリーページのタグ一覧、普通にget_terms('post_tag')とすると関係ないカテゴリーのタグまで全部出てしまうので、出したいタグのIDをincludeで絞ってたのですが、面倒くさい。
面倒くさい…。
ので、同じカテゴリーの記事についているタグだけ引っ張ってくるようにします。

タグ一覧(同じカテゴリーに属するものだけ)を表示するにあたり、

を参考に、タグ名の後ろに記事数も表示させるべく、

<ul>
<li><a href="ブログURL/tag/タグ名/">タグ名<span>記事数</span></a></li>
</ul>

と出したいときは

<?php if ( is_category() ) {
 $cat_id = get_query_var( 'cat' ); // 現在のカテゴリーのIDを取得
 $current_posts = get_objects_in_term( $cat_id, 'category' );  // 表示中のカテゴリーに属する投稿のIDを配列で取得
 $current_tags = wp_get_object_terms( $current_posts, 'post_tag' ); // 表示中のカテゴリーに属する投稿に付けられたタグの情報をまとめて取得
  if ( $current_tags ) {
  echo '<ul>' . "\n";
  foreach ( $current_tags as $tag )
  echo '<li><a href="' . home_url() . '/tag/' . $tag->slug . '/">' . $tag->name . '<span>' . $tag->count . '</span></a></li>' . "\n";
  echo '</ul>';
  }
}
?>

2018.1.22追記 get_bloginfo( url )が廃止になったのでhome_urlに変更

と書けば!おっけー!