サイドバーに Simple GA Ranking というプラグインにて Google アナリティクスのデータを使って人気記事を表示しているのですが、サイト全体の人気記事となっていて回遊性が悪いので、訪れてくれた方の興味にある記事にするためにカテゴリ別の人気記事を表示して、アイキャッチも表示してみることにしました。
→ Simple GA Ranking : Simple GA Ranking
以下のキャプチャのようにサイト全体の人気記事が表示されています。
やり方を検索していると以下のページを見つけたのですが、表示する関数を作りそれをウィジェット化しています。
→ akatsuki :【 WordPress 】「 Simple GA Ranking 」で同じカテゴリーの人気記事ランキングを作る方法
これでもよさそうですが Simple GA Ranking のデフォルトのウィジェットをいじれるのではないかと思い、ソースを見てみることにしました。
目次
カテゴリで絞り込んだ人気記事を取得する
ソースのを確認すると simple-ga-ranking.php の 254 行目の sga_widget_shortcode_argument というフィルターフックが使えそうでした sga_ranking_shortcode() という関数に渡す配列を変更することでウィジェットに出力されるデータを変えられるようです。
→ WordPress.org : Plugin Directory : source: simple-ga-ranking/trunk/simple-ga-ranking.php
個別の投稿とカテゴリのアーカイブのページにてカテゴリ別の人気記事を表示することにして、以下のような関数を function.php に書きました。カテゴリ絞り込みのロジックは先に上げたページを参考にさせていただきました。カテゴリアーカイブにて子カテゴリがあるページは親と子を合わせた投稿の人気記事のが表示されます。また個別投稿にて複数カテゴリがチェックされている場合は複数カテゴリを合わせた人気記事を表示します。
これで表示は変更できるのですが、 Google アナリティクスから取得するデータがデフォルトでは 100 件なので、アクセスが少ないカテゴリでは人気記事が表示されない自体になりました。そこで sga_ranking_limit_filter というフィルターフックを使って取得するデータの件数を 500 件にしました。
ウィジェットタイトルを変更
このままだとウィジェットのタイトルが「人気記事」のままなので「カテゴリ名+の人気記事」という体裁にすることにしました。ウィジェットのタイトルを変更するには widget_title というフィルターフックを使用するようです。 3 番目の引数の $id_base が simple_ga_rankig の場合のみカテゴリ名を取得しそれを前に追加しています。
以上のコードで以下のキャプチャのように表示がカテゴリごとに変更されました。
ランキングにアイキャッチを表示する
ランキングにアイキャッチ(サムネイル)表示して目を引きやすいようにしてみました。以下の記事のコードを参考にして、使うフックを sga_ranking_after_title にしてタイトルの後ろにアイキャッチを出力するように変更しました。
→メモ置き場のブログ: WordPress 高速化 : WordPress Popular Posts から Simple GA Ranking へ移行
CSS は以下のようにしています。
上記のコードで人気記事にアイキャッチ(サムネイル)がつきました。
これでカテゴリ内の回遊が少しは高まるといいのですけれど。






