メニュー
hiro
フリーランス
人生の後半になり、「自分はこれがやりたかったのか」というものが偶然見つかりました。「何をいまさら」と思いながらフリーランスを目指します。趣味は、武術の形の鍛錬とやりたいことを含めたライフスタイルを考察することです。
アーカイブ

【SWELL対応】ブログのタグクラウドをヒートマップ風に表示!PHP+CSSで簡単に設置する方法

暗号通貨界で使われるヒートマップ風デザイン

ブログのタグクラウド、ただ並べるだけではもったいないと思いませんか?
本記事では、ブログのタグクラウドを「暗号通貨の資産状況で使われるヒートマップ」のようにに表示する方法をご紹介します。

特徴は以下の3つです。

  • タグの人気順に大きさ・色・位置を変える
  • ピクセル単位で美しく整列させる
  • ショートコードひとつで簡単に設置可能

この3つで、読者にとって視覚的にわかりやすいタグクラウドが完成します。また、自身のブログが雑記ブログだった場合、「どのような記事を中心に投稿しているのか」と分かる手掛かりになります。

コピペだけなので簡単作業です。
では、始めていきましょう。

目次

ヒートマップの完成イメージ

本記事で紹介するタグクラウドは、暗号通貨の資産状況で使われるヒートマップのようなデザインです。色は単色で、細かい設定は、CSSコードで調整できます。
機能は以下の4つになります。

  • 1位タグは画面左に大きく表示(420×420px)
  • 2位〜9位は右側に階層的に配置
  • タグ数に応じて色の濃さと文字サイズが変化
  • スマホでも自動縮小で表示崩れなし

メリット

設置したブログが「どんな内容を扱っているのか」を読者に伝える手がかりになります。また、運営者自身にとっても、雑記ブログを長く続けていれば、蓄積されたタグから「自分のブログは何をテーマにしているのか」が見えてくるかもしれません。

ヒートマップ

各暗号通貨の価格変動を色で視覚化しており、緑は上昇、赤は下落を示しています。時価総額が大きいほど表示面積も大きく、直感的に市場全体の動きをつかむのに便利です。

画像こちら
🔗 CoinMarketCap – Crypto Heatmap

ヒートマップ風タグクラウドの設置手順

作業はシンプルです。
「PHPコードを追加」→「CSSコードを追加」→「表示したい場所にショートコードを追加」→「スマホ表示」の4STEPでヒートマップ風タグの設置は完了します。

これらのコードは、AIで作成したもので、環境によっては機能しないかもしれません。そのため、コードを追加する場合は注意してください。
念のためにバックアップを推奨します。

STEP

PHPコードを追加

まず、以下のPHPコードを 子テーマの functions.php に貼り付けてください。

※外観メニューに「テーマファイルエディター」が表示されない場合は、セキュリティプラグインの影響が考えられます。

たとえば、「Really Simple Security」では、設定項目にある「ファイルエディターの無効化」が「ON」になっていると、テーマファイルエディターが非表示になります。

この設定を「OFF」に変更することで、「テーマファイルエディター」が再び表示されるようになります。

Really Simple Securityのファイルエディター無効化
Really Simple Securityの設定

PHPコード

// ヒートマップ型タグクラウドのショートコードを定義
function custom_tag_cloud_boxed_shortcode($atts) {
    $atts = shortcode_atts( array(
        'number' => 10, // 取得するタグ数(最大9個まで表示)
    ), $atts, 'custom_tag_cloud_boxed' );

    $tags = get_tags( array(
        'orderby' => 'count',      // 使用頻度の多い順に取得
        'order'   => 'DESC',
        'number'  => $atts['number'],
        'hide_empty' => true,     // 投稿のないタグは除外
    ) );

    if ( empty( $tags ) ) return '';

    $html = '<div class="custom-tag-boxed-heatmap">';

    foreach ( $tags as $i => $tag ) {
        $rank = $i + 1;             // タグの順位(1〜9)
        if ( $rank > 9 ) break;    // 最大9個まで表示

        // 背景色を明度で変化(HSL)
        $lightness = 15 + (($rank - 1) / 8) * 55; // 濃→薄
        $bg_color = "hsl(200, 60%, {$lightness}%)";

        // フォントサイズを順位で変化
        if ($rank === 1) {
            $font_size = 38;
        } elseif ($rank === 2) {
            $font_size = 26;
        } else {
            $font_size = 24 - (($rank - 3) / 6) * 16; // 3位〜9位で24→8に分布
        }

        // タグのHTML出力(リンク+クラス名+インラインスタイル)
        $html .= '<a href="' . esc_url(get_tag_link($tag->term_id)) . '"
            class="tag-box tag-' . $rank . '"
            style="
                background-color: ' . $bg_color . ';
                font-size: ' . round($font_size, 2) . 'px;
            "
            title="' . esc_attr($tag->count) . ' 件の投稿">
            <span>' . esc_html($tag->name) . '</span>
        </a>';
    }

    $html .= '</div>';
    return $html;
}
add_shortcode('custom_tag_cloud_boxed', 'custom_tag_cloud_boxed_shortcode');

PHPコード

以上です。

STEP

CSSコードを追加

次に、タグクラウドの見た目を整えるためにCSSコードを追加します。タグの人気順位に応じて、サイズや位置をきれいに並べて表示できるようにします。

※CSSとは、Webサイトの「見た目のルール」を指定するためのコードです。ここでは、タグの「人気順」に基づいて、大きさや配置を細かく制御していきます。

CSSコード

「外観→カスタマイズ→追加CSS」の手順で以下のコードを追加します。

/* ヒートマップ PC表示 */
.custom-tag-boxed-heatmap {
    position: relative;
    width: 840px;
    height: 420px;
    box-sizing: border-box;
    overflow: hidden;
    background: #f7f7f7;
}

.custom-tag-boxed-heatmap .tag-box {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: bold;
    font-size: 16px;
    text-decoration: none;
    overflow: hidden;
    border-radius: 6px;
    padding: 0 6px;
    box-sizing: border-box;
    white-space: nowrap;
    text-overflow: ellipsis;
    transition: transform 0.2s, box-shadow 0.2s;
}

.custom-tag-boxed-heatmap .tag-box:hover {
    transform: scale(1.05);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.custom-tag-boxed-heatmap .tag-box span {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* === 各タグの位置とサイズ(840×420ベース) === */

/* 1位:420×420 */
.custom-tag-boxed-heatmap .tag-1 {
    left: 0;
    top: 0;
    width: 420px;
    height: 420px;
}

/* 2位:420×210 */
.custom-tag-boxed-heatmap .tag-2 {
    left: 420px;
    top: 0;
    width: 420px;
    height: 210px;
}

/* 3位:210×210 */
.custom-tag-boxed-heatmap .tag-3 {
    left: 420px;
    top: 210px;
    width: 210px;
    height: 210px;
}

/* 4位:210×105 */
.custom-tag-boxed-heatmap .tag-4 {
    left: 630px;
    top: 210px;
    width: 210px;
    height: 105px;
}

/* 5位:105×105 */
.custom-tag-boxed-heatmap .tag-5 {
    left: 630px;
    top: 315px;
    width: 105px;
    height: 105px;
}

/* 6位:105×52.5 */
.custom-tag-boxed-heatmap .tag-6 {
    left: 735px;
    top: 315px;
    width: 105px;
    height: 52.5px;
}

/* 7位:52.5×52.5 */
.custom-tag-boxed-heatmap .tag-7 {
    left: 735px;
    top: 367.5px;
    width: 52.5px;
    height: 52.5px;
}

/* 8位:52.5×26.25 */
.custom-tag-boxed-heatmap .tag-8 {
    left: 787.5px;
    top: 367.5px;
    width: 52.5px;
    height: 26.25px;
}

/* 9位:52.5×26.25 */
.custom-tag-boxed-heatmap .tag-9 {
    left: 787.5px;
    top: 393.75px;
    width: 52.5px;
    height: 26.25px;
}

CSSコード

以上です。

タグの配置

タグの順位ごとの位置とサイズです。

スクロールできます
順位表示位置(left / top)サイズ(幅 × 高さ)
1位左上:left: 0; top: 0420px × 420px
2位右上:left: 420px; top: 0420px × 210px
3位右中左:left: 420px; top: 210px210px × 210px
4位右中右上:left: 630px; top: 210px210px × 105px
5位右下左:left: 630px; top: 315px105px × 105px
6位右下中央:left: 735px; top: 315px105px × 52.5px
7位右下下左:left: 735px; top: 367.5px52.5px × 52.5px
8位右下下右上:left: 787.5px; top: 367.5px52.5px × 26.25px
9位右下下右下:left: 787.5px; top: 393.75px52.5px × 26.25px
タグ順位ごとのサイズ・位置まとめ表
STEP

スマホ表示

スマホ表示でヒートマップが画面からはみ出してしまう問題を防ぐため、下記のCSSコードを追加して調整します。
このコードは、STEP2のCSSコードの下に追記してください。

/* ヒートマップ スマホ表示 */
@media screen and (max-width: 767px) {
  .custom-tag-boxed-heatmap {
    transform: scale(0.4);
    transform-origin: top left;
    width: 840px;
    height: 420px;
    overflow: hidden;
  }
}

CSSコード

STEP

表示したい場所にショートコードを追加

記事やウィジェットなど、表示したい場所に以下のショートコードを貼り付けてください。

[custom_tag_cloud_boxed]

HTMLショートコード

以上で終了です。

おわりに

このように、タグクラウドは工夫次第で、さらに「魅せる導線」に変わります。
人気のタグを視覚的に強調し、読者の関心を誘導できるので、回遊率アップにもつながります。

コードが長く見えるかもしれませんが、手順通りにコピペすればswellでは動作するように作られています。

あなたのブログにも、ぜひ「ヒートマップ風のタグクラウド」を取り入れてみてください!

関連記事

  

暗号通貨界で使われるヒートマップ風デザイン

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次