WordPressで投稿ページが属するカテゴリーに紐づくタグのタグクラウドを出力

  • (このサイトで)例えば、「Python の配列に関する投稿」と、「JavaScript の配列に関する投稿」に、それぞれタグを付与したい場合
    • 両方ともタグ名を list として従来のタグクラウドで出力すると、list という名前のタグが 2 つ表示され、どちらがどちらか判別できなくなる
    • そもそも、Python の配列について調べる時に、JavaScript の配列の情報は不要だし、もっと言うと、他のカテゴリーの記事が持つタグクラウドがあるとノイズが多くなる
  • そこで、Python の記事が表示されているなら、Python のカテゴリーを持つ記事にタグ付けしたタグ一覧をタグクラウドとして表示させる方がよい
<?php if ( !defined( 'ABSPATH' ) ) exit; ?>

<?php
  $category = get_the_category();
  $category_id = $category[0]->cat_ID;
  $tags = get_tags(array(
    'hide_empty' => false,
    'taxonomy' => 'post_tag',
    'object_ids' => get_posts(array(
      'numberposts' => -1,
      'category' => $category_id,
      'post_status' => 'publish',
      'fields' => 'ids'
    ))
  ));

  if ($tags) {
    echo '<ul class="tag-cloud">';
    foreach($tags as $tag) {
      echo '<li><a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a></li>';
    }
    echo '</ul>';
  }
?>