MENU
  • ホームHOME
  • DEVELOPポートフォリオ
  • スマートホームSmart Home
    • スマートリモコン
    • スマートライト
    • スマートロック
    • スマートカメラ
    • スマートセンサー
    • スマートスピーカー
    • IoT家電
    • ロボット掃除機
  • ガジェットGadgets
    • iPhone & iPad
    • アップルウォッチ
    • パソコン関連
    • 充電器/モバイルバッテリー
    • キーボードマウス
    • アプリソフト関連
    • カメラ
    • オーディオその他
  • 生活家電&インテリアAppliances
    • Wi-Fiルーター
    • PCモニター
    • デスク関連
    • モバイル&光回線
    • その他家電
  • ライフLife Style
    • ニュース
    • ライフハック
    • 便利なサービス
    • プログラミング
    • コラム
    • ブログ運営
  • 勉強アプリEducation
    • ビジネス資格
      • ビジネスマネジャー検定
      • MCPC IoT検定 中級対応
      • MCPCモバイルシステム技術
    • DIGI RADIO
      (特設サイト)
      • 一陸技アプリ
      • 一陸特アプリ
      • 二陸特アプリ
      • 工事担任者(総合通信)アプリ
    • クラウド系アプリ
      • AWS SAAアプリ
      • AZ-900勉強アプリ
      • AI-900勉強アプリ
  • お問合せContact
    • 勉強アプリ専用フィードバックフォーム
ガジェット&お得なサービス情報をお届けするブログメディア「デジライン」
DIGILINE (デジライン)
  • ホームHOME
  • DEVELOPポートフォリオ
  • スマートホームSmart Home
    • スマートリモコン
    • スマートライト
    • スマートロック
    • スマートカメラ
    • スマートセンサー
    • スマートスピーカー
    • IoT家電
    • ロボット掃除機
  • ガジェットGadgets
    • iPhone & iPad
    • アップルウォッチ
    • パソコン関連
    • 充電器/モバイルバッテリー
    • キーボードマウス
    • アプリソフト関連
    • カメラ
    • オーディオその他
  • 生活家電&インテリアAppliances
    • Wi-Fiルーター
    • PCモニター
    • デスク関連
    • モバイル&光回線
    • その他家電
  • ライフLife Style
    • ニュース
    • ライフハック
    • 便利なサービス
    • プログラミング
    • コラム
    • ブログ運営
  • 勉強アプリEducation
    • ビジネス資格
      • ビジネスマネジャー検定
      • MCPC IoT検定 中級対応
      • MCPCモバイルシステム技術
    • DIGI RADIO
      (特設サイト)
      • 一陸技アプリ
      • 一陸特アプリ
      • 二陸特アプリ
      • 工事担任者(総合通信)アプリ
    • クラウド系アプリ
      • AWS SAAアプリ
      • AZ-900勉強アプリ
      • AI-900勉強アプリ
  • お問合せContact
    • 勉強アプリ専用フィードバックフォーム
DIGILINE (デジライン)
  • ホームHOME
  • DEVELOPポートフォリオ
  • スマートホームSmart Home
    • スマートリモコン
    • スマートライト
    • スマートロック
    • スマートカメラ
    • スマートセンサー
    • スマートスピーカー
    • IoT家電
    • ロボット掃除機
  • ガジェットGadgets
    • iPhone & iPad
    • アップルウォッチ
    • パソコン関連
    • 充電器/モバイルバッテリー
    • キーボードマウス
    • アプリソフト関連
    • カメラ
    • オーディオその他
  • 生活家電&インテリアAppliances
    • Wi-Fiルーター
    • PCモニター
    • デスク関連
    • モバイル&光回線
    • その他家電
  • ライフLife Style
    • ニュース
    • ライフハック
    • 便利なサービス
    • プログラミング
    • コラム
    • ブログ運営
  • 勉強アプリEducation
    • ビジネス資格
      • ビジネスマネジャー検定
      • MCPC IoT検定 中級対応
      • MCPCモバイルシステム技術
    • DIGI RADIO
      (特設サイト)
      • 一陸技アプリ
      • 一陸特アプリ
      • 二陸特アプリ
      • 工事担任者(総合通信)アプリ
    • クラウド系アプリ
      • AWS SAAアプリ
      • AZ-900勉強アプリ
      • AI-900勉強アプリ
  • お問合せContact
    • 勉強アプリ専用フィードバックフォーム
\ ポイント最大11倍! /
  1. ホーム
  2. ライフ
  3. ブログ運営
  4. Simple GA Rankingを使ってカテゴリー別のランキングを作成する

Simple GA Rankingを使ってカテゴリー別のランキングを作成する

2022 11/23
プロモーションを含みます
ブログ運営 プログラミング
Google

当サイトでも採用していますが、人気記事ランキングを作成するプラグインはいくつかありますが、やはりその中でも軽量で使いやすいと言われているのがSimple GA Rankingですよね。

Google Analyticsを使用したランキング何ですが、今回これを使ってカテゴリー別のランキングを作ってみたいと思い、色々調べた結果以下のakatsukiさんのブログにたどり着きました。

https://yosiakatsuki.net/blog/wp-simple-ga-ranking-category/

とても参考になったんですが、一部コードに修正を加えた方がよりCSS等でいじりやすくなるので、少し修正を加えたコードを公開しようかと思います。

コードの修正点

元のakatsukiさんのコードはちゃんと最低機能してくれるんですが、サムネイル画像の部分がシンプルに画像データimpだけ引っ張って来ているので、よくこういうサムネイル でありがちな、「画像をクリックするとページに飛ぶ」ということができませんので、この部分の修正をします

その次にランキングのリストが全て同じclassで指定されてしまうので、css側でランキングごとに表示を変えるようなやり方にしたいので、その部分も直していきます。

サムネイル表示の修正

先ずは元コードをみてみるとこんな感じになっていると思います。

    /**
     * ランキング作成
     */
    if ( ! empty( $ranking_data ) ) {
      echo '<ol class="sga-ranking">';
      foreach ( $ranking_data as $post_id ) {
        echo '<li class="sga-ranking-list">' . get_the_post_thumbnail( $post_id, 'thumbnail' ) . '<a href="' . esc_url_raw( get_permalink( $post_id ) ) . '">' . esc_html( get_the_title( $post_id ) ) . '</a></li>';
      }
      echo '</ol>';
    }

これでhtmlをみるとざっくりこんな感じで出来上がります。

<li class="sga-ranking-list">
 <img.....>
<a href...></a>
</li>

これだと単に左にサムネイル 画像ができて、右に記事タイトルをあるだけ。また画像をクリックしても何も起きません。

なので、これをこんな感じに直してあげます。

<li class="sga-ranking-list">
 <figure class="sga-ranking-thumb">
   <a href...>
     <img.....>
   </a>
<a href...></a>
</li>

こうすることでサムネイル 画像側にもリンクが入るようになりますね。

具体的なコードとしてはこんな感じなりました。少しごちゃごちゃしてキレイではないんですが、とりあえずこれで動きます。

        echo '<li class="sga-ranking-list">' .'<figure class="sga-ranking-thumb">'. '<a href="' . esc_url_raw( get_permalink( $post_id ) ) . '" title = " ' . esc_html( get_the_title( $post_id ) ) . '">' . get_the_post_thumbnail( $post_id, 'thumbnail' ) .'</a></figure>'. '<a href="' . esc_url_raw( get_permalink( $post_id ) ) . '" title = " ' . esc_html( get_the_title( $post_id ) ) . '">' . esc_html( get_the_title( $post_id ) ) . '</a></li>';

順位別のランキングクラスの追加

次に順位別にCSSをいじれるようにコードを修正していきましょう。

これは結構簡単です。元のコードを先ずは見てみましょう。

    /**
     * ランキング作成
     */
    if ( ! empty( $ranking_data ) ) {
      echo '<ol class="sga-ranking">';
      foreach ( $ranking_data as $post_id ) {
        echo '<li class="sga-ranking-list">'

シンプルにリストにClassを追加しているだけですが、これを順位別にclass名が変わるようにしてしまいましょう。

具体的にはカウント用に変数($num)を準備してあげて、カウントアップするようにしてあげれば良いだけです。元々foreachでリストを回しているだけなので、sga-ranking-list-‘.$num++.’を末尾追加すれば、あとは1位であれば、sga-ranking-list-1、2位であれば、sga-ranking-list-2となります。

    /**
     * ランキング作成
     */
	  $num = 1;
	  if ( ! empty( $ranking_data ) ) {
      echo '<ol class="sga-ranking">';
      foreach ( $ranking_data as $post_id ) {
        echo '<li class="sga-ranking-list sga-ranking-list-'.$num++.'">'.......

あとはそれぞれの順位別にsga-ranking-list-xxへのCSSをいじってあげればおしまいです。

おまけサンプル function.php & CSS

function.phpに以下を記述する。

///////////////////////////////
//---Simple GA Ranking Category別---/////
//////////////////////////////
wp_register_sidebar_widget(
  'sga_ranking_sample_cat',
  'カテゴリー別の人気ランキング',
  'widget_sga_ranking_sample_cat',
  array(
    'description' => 'Simple GA Rankingを使ってカテゴリーで絞り込んだランキングを作成する',
    'title'       => ''
  )
);

function widget_sga_ranking_sample_cat( $args ) {
  echo $args['before_widget'];
  echo $args['before_title'] . $args['widget_name'] . $args['after_title'];
  if ( function_exists( 'sga_ranking_get_date' ) ) {
    $sga_args = array(
      'display_count' => 5, //5件表示する
      'period'        => 7, //過去7日のデータを使う(週別ランキング)
    );
    /**
     * 投稿 or カテゴリーアーカイブページならカテゴリーで絞り込む
     */
    if ( is_single() || is_category() ) {
      $cat_slug = array();
      $cat_list = array();
      /**
       * 絞り込み対象のカテゴリー一覧を作成する
       */
      if ( is_single() ) {
        $cat_list = get_the_category();
      } else {
        $cat        = get_queried_object();
        $cat_list[] = $cat;
        $children   = get_term_children( $cat->term_id, 'category' );
        foreach ( $children as $cat_id ) {
          $cat_list[] = get_category( $cat_id );
        }
      }
      foreach ( $cat_list as $cat ) {
        $cat_slug[] = $cat->slug;
      }
      /**
       * カテゴリーslugを指定して絞込
       */
      $sga_arg_cat = array(
        'category__in' => implode( ',', $cat_slug )
      );
      /**
       * 条件結合
       */
      $sga_args = wp_parse_args( $sga_arg_cat, $sga_args );
    }
    /**
     * ランキングデータ取得
     */
    $ranking_data = sga_ranking_get_date( $sga_args );
    /**
     * ランキング作成
     */
	  $num = 1;
	  if ( ! empty( $ranking_data ) ) {
      echo '<ol class="sga-ranking">';
      foreach ( $ranking_data as $post_id ) {
        echo '<li class="sga-ranking-list sga-ranking-list-'.$num++.'">' .'<figure class="sga-ranking-thumb">'. '<a href="' . esc_url_raw( get_permalink( $post_id ) ) . '" title = " ' . esc_html( get_the_title( $post_id ) ) . '">' . get_the_post_thumbnail( $post_id, 'thumbnail' ) .'</a></figure>'. '<a href="' . esc_url_raw( get_permalink( $post_id ) ) . '" title = " ' . esc_html( get_the_title( $post_id ) ) . '">' . esc_html( get_the_title( $post_id ) ) . '</a></li>';
      }
      echo '</ol>';
    }
  }
  echo $args['after_widget'];
}

ランキング別のCSSをいじるには以下を小テーマ のstyle.cssに記載しましょう。色を適当にお好みで変えてください。

.sga-ranking {
	counter-reset: number;  /*順位付け用*/
}
.sga-ranking li {
	position: relative;
	list-style: none;
}
.sga-ranking li:before {
	counter-increment: number;
	content: counter(number);
	position: absolute;
	top: 0;
	left: 0;
	width: 1.6em;
	height: 1.6em;
	line-height: 1.6em;
	font-size: 12px;
	color: #fff;
	text-align: center;
	background: rgba(0,153,255,0.4);  /*好きな色に変更する。特に順位別に指定が無ければこの色になる。*/
	z-index: 1;
}
.sga-ranking li.sga-ranking-list.sga-ranking-list-1:before {
	background: rgba(218,179,0,0.6); /*1位用:好きな色に変更する*/
}
.sga-ranking li.sga-ranking-list.sga-ranking-list-2:before {
	background: rgba(192,192,192,0.4); /*2位用:好きな色に変更する*/
}

.sga-ranking li.sga-ranking-list.sga-ranking-list-3:before {
	background: rgba(129,90,43,0.5); /*3位用:好きな色に変更する*/
}
ブログ運営 プログラミング
Google

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

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

この記事を書いた人

Takaのアバター Taka

AIエンジニア / AIエージェント開発者 / テックブロガー

生成AI・AIエージェント・IoT技術を活用し、業務自動化からスマートホームまで幅広いソリューションの設計・開発を行っています。

本業ではAIエンジニアとして企業向けAIエージェントの開発・技術支援に携わる一方、個人ではAI・IoT・クラウドを組み合わせたシステム開発や技術検証を継続しています。

DIGI LINEでは、ChatGPTやAIエージェントを活用した業務効率化、個人開発、WordPress活用、IoT・スマートホーム構築など、「実際に使えるAI」をテーマに、実践的なノウハウや最新技術をわかりやすく発信しています。

机上の理論ではなく、自ら検証・開発・運用した経験をもとに、仕事や生活をより便利にするテクノロジーの活用方法をお届けします。

関連記事

  • 1時間で出来るスマートホーム化:Google Homeを使って家電を操作するできるようにする
    2022年12月17日
  • 【Google Nest活用術】Google Nestを買ったら先ずこれだけはやっておくだけで満足度段違い!
    2022年12月17日
  • ChromecastでApple TVが見れるようになりました
    2022年12月17日
  • 介護施設のおばあちゃんのためにGoogle Nest Hub Maxでテレビ電話を。Google Duoの使い方を解説!
    2022年12月17日
  • Google Nest Hub(ネストハブ)のできること。スマートディスプレイが便利!
    2022年12月17日
  • Google HomeからCanonプリンタに塗り絵や折り紙を印刷させる方法
    2022年12月17日
  • Google Nestスマートスピーカーでショッピングリストを家族と共有しよう
    2022年12月17日
  • GoogleHomeとは何か?Google Homeで出来るスマートホーム
    2022年12月17日

コメント

コメントする コメントをキャンセル

人気記事
  • IKEA TRADRI(トロードフリ)のリモコン/センサーが反応しない!?電球がペアリングできないときの復旧方法
    ライフハック
  • iPhoneの電池の減りが異常に早いのでバッテリー交換しに行ったら断れた話。AppleCare+未加入の人は注意しよう!
    便利なサービス
  • セゾンカードの携行品保険ならスマホもパソコンも保証!月300円のスマホ補償付きお買い物安心プラン[Y]がコスパ最強!
    保険のこと
  • iPhoneのフィールドテストモード。隠しコマンドを入れたらこうなるなんて!?【専門家が解説】
    ライフハック
  • Apple Watch (アップルウォッチ)向けの保険としてapplecare+はいらないよ
    保険のこと
新着記事
  • セサミ6 Pro mini発表|引き戸のスマートロック化に、ようやく現実的な選択肢が出てきた
    2026年7月29日
  • AI Agentの品質を支えるデータ・ルール・API・検索・知識グラフ・評価を表す抽象図
    Agentの品質・精度はモデルを替えるだけでは上がらない。実用的なAIを作るための設計順序
    2026年7月25日
  • スマートバスマット体組成計モデル(2026)は何が変わった?旧モデル長期利用者目線で紹介
    2026年6月10日
  • SwitchBot スマートサーキュレーター(スタンド型)は買いか?旧モデルとの違いと使い分けを実機レビュー
    2026年6月4日
  • 【レビュー】SwitchBot スマートデイリーステーション|家族共有の天気カレンダーボード
    2026年4月25日
目次
DIGILINEオススメのサービス
TAKA
メディア監修
AIエンジニア / AIエージェント開発者 / テックブロガー

生成AI・AIエージェント・IoT技術を活用し、業務自動化からスマートホームまで幅広いソリューションの設計・開発を行っています。

本業ではAIエンジニアとして企業向けAIエージェントの開発・技術支援に携わる一方、個人ではAI・IoT・クラウドを組み合わせたシステム開発や技術検証を継続しています。

DIGI LINEでは、ChatGPTやAIエージェントを活用した業務効率化、個人開発、WordPress活用、IoT・スマートホーム構築など、「実際に使えるAI」をテーマに、実践的なノウハウや最新技術をわかりやすく発信しています。

机上の理論ではなく、自ら検証・開発・運用した経験をもとに、仕事や生活をより便利にするテクノロジーの活用方法をお届けします。
新着記事
  • セサミ6 Pro mini発表|引き戸のスマートロック化に、ようやく現実的な選択肢が出てきた
  • AI Agentの品質を支えるデータ・ルール・API・検索・知識グラフ・評価を表す抽象図
    Agentの品質・精度はモデルを替えるだけでは上がらない。実用的なAIを作るための設計順序
  • スマートバスマット体組成計モデル(2026)は何が変わった?旧モデル長期利用者目線で紹介
  • SwitchBot スマートサーキュレーター(スタンド型)は買いか?旧モデルとの違いと使い分けを実機レビュー
記事を探す
メーカーで探す
+style Aiseesoft Amazon Anker Apple BenQ(ベンキュー) BLUETTI Bose braun Broadlink Buffalo CANDY HOUSE(キャンディハウス) Coomooy DELL EaseUS FlexiSpot(フレキシースポット) GenHigh GoPro Hysure IKEA Insta360 iRobot issin Kandao LinkJapan Logicool LoopEarplugs MiniTool MOFT(モフト) MovPilot MUJI Narwal Nature Philips PITAKA(ピタカ) QNAP Qrio(キュリオ) Quntis Rakuten tile Tranya Ulike Zenosyne お得情報 まとめ
  • DIGI LINE(デジライン)について
  • お仕事の依頼
  • 特定商取引法に関する表記
  • 免責事項/プライバシーポリシー
  • お問合せ

© DIGILINE (デジライン)

目次