【WordPress】タグ一覧をサイトに表示する方法|get_tags・wp_tag_cloud・人気順表示

【WordPress】タグ一覧をサイトに表示する方法|コード例とデザイン調整も解説 WordPress

WordPressでブログやWebサイトを運営する際、タグは記事の分類や関連付けに役立ちます。タグ一覧を表示することで、読者は興味のあるトピックにすばやくアクセスでき、サイト内の回遊やSEOの向上にもつながります。この記事では、リスト表示の基本コードから、手軽なタグクラウード表示使用頻度順の上位表示まで解説します。

この記事でわかること

  • get_tags() を使ったタグ一覧の基本表示
  • wp_tag_cloud() で手軽にタグクラウードを表示
  • 使用頻度が高いタグだけを上位表示する方法
スポンサーリンク

表示場所に応じてテーマファイルを選ぶ

タグ一覧を表示するには、まず表示したい場所を明確にします。以下のように、表示位置によって編集するテーマファイルが異なります。

  • サイドバーに表示したい場合:sidebar.php
  • フッターに表示したい場合:footer.php
  • 固定ページや個別ページに直接表示したい場合:page.phpsingle.php

使用しているテーマのカスタマイズ状況によっては、template-parts/ ディレクトリ内のファイルが対象になることもあります。

タグ一覧を表示するコード(基本)

編集したいPHPファイルを開き、タグ一覧を表示したい位置に以下のコードを挿入します。

タグ一覧をリスト形式で表示
<?php
$tags = get_tags();
if ($tags) {
    echo '<ul class="tag-list">';
    foreach ($tags as $tag) {
        $tag_link = get_tag_link($tag);
        echo '<li><a href="' . esc_url($tag_link) . '">' . esc_html($tag->name) . '</a></li>';
    }
    echo '</ul>';
}
?>

このコードでは、get_tags() でサイト内の全タグを取得し、それぞれのタグ名とリンクをリスト形式で出力します。esc_url()esc_html() を使うことで、セキュリティ面でも安全です。get_tags() は既定で投稿の紐付いていないタグ(使用数0)を除外するため、未使用タグが一覧に紛れ込む心配はありません。

使用頻度が高いタグだけを上位表示する

タグの数が多いサイトでは、すべてのタグを並べると一覧が長くなりすぎます。numberorderby を指定すると、使用頻度が高いタグだけを絞り込んで表示できます。

使用頻度が高い上位10件だけを表示
<?php
$tags = get_tags(array(
    'orderby' => 'count', // 使用回数順に並び替え
    'order'   => 'DESC',  // 多い順
    'number'  => 10,      // 上位10件のみ取得
));
if ($tags) {
    echo '<ul class="tag-list">';
    foreach ($tags as $tag) {
        $tag_link = get_tag_link($tag);
        echo '<li><a href="' . esc_url($tag_link) . '">' . esc_html($tag->name)
            . ' (' . esc_html($tag->count) . ')</a></li>';
    }
    echo '</ul>';
}
?>
count プロパティで使用回数も表示できる
$tag->count にはそのタグが付いている公開済み投稿の数が入っています。「人気タグ」欄を作る際は、この値を使って件数を添えると読者に伝わりやすくなります。

wp_tag_cloud() で手軽にタグクラウードを表示する

使用頻度に応じて文字サイズが自動で変わるタグクラウードを表示したい場合は、自前でループを書かなくても wp_tag_cloud() 関数一つで実現できます。

wp_tag_cloudでタグクラウードを表示
<?php
wp_tag_cloud(array(
    'smallest' => 12,  // 最小フォントサイズ(px)
    'largest'  => 28,  // 最大フォントサイズ(px)
    'number'   => 30,  // 表示するタグの上限数(0で全件)
    'format'   => 'flat',
));
?>
リスト表示との使い分け
wp_tag_cloud() は手軽ですが、出力されるマークアップやフォントサイズの計算方法を細かく制御することはできません。デザインを自由にカスタマイズしたい場合は、前述の get_tags() を使った自前のループ実装を選んでください。

スタイルのカスタマイズ(任意)

見た目を整えるために、CSSでスタイルを調整することも可能です。例えば以下のようなCSSを追加することで、シンプルで見やすいタグリストになります。

タグ一覧のスタイル
.tag-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tag-list li {
  background: #f0f0f0;
  padding: 4px 10px;
  border-radius: 4px;
}

.tag-list a {
  text-decoration: none;
  color: #333;
}

style.css に追記するか、テーマカスタマイザーの「追加CSS」に記述してください。コードを編集して保存した後は、ブラウザ側のキャッシュやサイト高速化プラグインのキャッシュが残っていると変更が反映されないことがあるため、表示が変わらない場合はキャッシュのクリアも確認してください。

関連するカテゴリー・タグ表示のカスタマイズ

タグとカテゴリーを区切り文字でまとめて表示したい場合はカテゴリーやタグの一覧を指定した区切り文字を入れて表示する方法で解説しています。

よくある質問(FAQ)

QWordPressでタグ一覧をページに表示するコードは?
A文字サイズが変わるタグクラウードなら wp_tag_cloud() を、一覧形式で自由にデザインしたいなら get_tags() でタグ配列を取得してforeach でループ表示します。デザインはCSSで自由にカスタマイズできます。
Qget_tags()で取得できるタグ情報は何ですか?
A各タグの term_idnameslugcount(記事数)・description などのプロパティにアクセスできます。URLは get_tag_link($tag->term_id) で取得します。orderbyordernumber パラメーターで並び順や件数も指定できます。
Q特定のカテゴリーに関連するタグだけを表示するには?
AWP_Query でカテゴリー指定の記事を取得してループし、get_the_tags() で各記事のタグを収集する方法があります。あるいは get_terms() でカテゴリーとタグのリレーションを複雑にクエリする方法もあります。

まとめ

  • 基本get_tags()foreach でリスト表示(esc_url()/esc_html()で安全に)
  • 手軽にwp_tag_cloud() でタグクラウード表示
  • 人気順orderby => 'count'number で上位だけ表示

WordPressでタグ一覧を表示することで、ユーザビリティとSEOの両面で効果が期待できます。テーマファイルにコードを追加するだけの簡単な実装なので、ぜひ活用してみてください。