【WordPress】タグ一覧を取得する時に特定のカテゴリに属するタグを非表示にする方法

今回実現したかったことは、

・タグ一覧の取得と、そのタグが付いている投稿の取得
・特定のカテゴリに所属している投稿のタグは表示したくない

です。

少々無理矢理な感じがしますが、どなたかの参考になれば幸いです。

<?php
      $original_query = $wp_query;
      $tag_all = get_terms( "post_tag", "fields=all&get=all" );
      foreach($tag_all as $value):
      ?>
    <?php $posts = get_posts('cat=-●●●&numberposts=1&tag='.$value->slug); global $post;?>
    <?php foreach($posts as $post): ?>
      <h3><?php echo $value->name;?></h3>
    <?php endforeach; ?>
      <ul>
        <?php $posts = get_posts('cat=-●●●&numberposts=-1&tag='.$value->slug); global $post;?>
        <?php foreach($posts as $post): ?>
        <li>
        <a href="<?php the_permalink() ?>">
        <img src="<?php echo wp_get_attachment_url( get_post_thumbnail_id() ); ?>">
        </a>
        <span class="date"><?php the_time("Y.n.j"); ?></span>
        <p class="title">
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </p>
        </li>
        <?php endforeach; ?>
      </ul>
      <?php endforeach;
      $wp_query = $original_query;
      wp_reset_postdata();
      ?>

コード内2箇所にあるcat=-●●●の「●●●」を除外したいカテゴリのIDに変更してください。

上記のコードの場合、タグ名、記事サムネイル、記事の投稿日時、記事タイトルがリスト形式で表示されます。
ご自身の環境に合わせて変更してください。

« »