【WordPress】サーバ負荷が軽い「Simple GA Ranking」プラグインで人気記事ランキングを表示する方法
人気記事ランキングを表示させるプラグインは「WordPress Popular Post」「WP-PostViews」など色々あります。
今回は、Google Analyticsのデータを元にランキングを表示する「Simple GA Ranking」の使用方法をご紹介します。
◆目次
プラグインのインストール
管理画面の「プラグイン」>「新規追加」より「Simple GA Ranking」で検索し、インストールと有効化を行ってください。
OAuth2認証とプラグインの設定
管理画面の上部に「Simple GA Ranking is available OAuth2 authorization. Please set on setting panel. ClientLogin is no longer available. Please see this link」
というメッセージが表示されるので、「setting panel」をクリックしてください。
「Google Analytics設定」の画面が表示されます。
「クライアントID」「コンシューマーシークレット」を設定する必要があるので、これらを取得するために、Google APIの設定を行っていきます。
「Google API Console」をクリックします。
※Google API画面へ飛びますので、別ウィンドウで開く方がその後の作業がしやすいです。
「プロジェクトを作成」ボタンをクリックします。
「プロジェクト名」を入力し作成します。(作成に少し時間がかかるのでじっと待つ)
作成が完了するとライブラリ画面へ移動するので、「その他の一般的な API」の「Analytics API」をクリックします。
「有効にする」をクリックして、有効化します。
認証情報へ進みます。
「クライアントID」をクリックします。
「同意画面を設定」をクリックします。
必要な情報を入力し「保存」をクリックします。(メールアドレスとサービス名は必須)
「ウェブアプリケーション」を選択します。承認済みのリダイレクトURL(※)を入力して保存すれば完了です。
※承認済みのリダイレクトURLはWordPressの管理画面 Google Analytics設定画面にある「コールバックURL」を入力します。
クライアントIDとシークレットが表示されますので、コピーをします。
Google Analytics設定画面に貼り付けます。
「トークンを取得」をクリックし、googleの認証画面で「許可」をするとトークンの取得が完了します。
統計データを利用するアカウントを選択し「保存」をすると、設定が完了します。
サイトに表示する
サイトに表示するには、「ウィジェット」で表示する方法、「ショートコード」を使用する方法、テーマファイルに記述する方法がありますが、今回はテーマファイルに記述する方法をご紹介します。
以下の条件で、ランキングを表示してみます。
・カスタム投稿:3つ(custom1,custom2,custom3)
・ランキング記事数:5件
・30日前までのランキングを表示
<?php $args = array( 'post_type' => 'custom1,custom2,custom3', 'display_count' => 5, 'period' => 30 ); $ranking_data = sga_ranking_get_date($args); if ( !empty( $ranking_data ) ): echo '<ol>'; foreach ( $ranking_data as $post_id ): ?> <li> <a href="<?php the_permalink(); ?>"> <?php if (has_post_thumbnail()) { the_post_thumbnail('thumbnail', array( 'alt' =>'' )); } else { echo '<img src="/img/non_img.jpg" alt="No-images">'; } ?> <p class="ranking-ttl"><?php the_title(); ?></p> </a> </li> <?php endforeach; echo '</ol>'; endif; wp_reset_postdata(); ?>
上記以外のパラメータやショートコードの書き方等につきましては、公式サイトを参考にしてください。
フックの設定
このプラグインではいくつかのフィルターフックが用意されています。
以下の設定を変更してみます。
・1日に1回キャッシュがクリアされるのを、1日2回に変更
・PVの上位100位までが表示されるのを、500位までに変更
function.phpに以下のように記述します。
<?php add_filter( 'sga_ranking_cache_expire', function($expire) { return 12*60*60; } ); add_filter( 'sga_ranking_limit_filter', function($limit) { return 500; } ); ?>
これで、人気記事ランキングが表示されるようになります。
OAuth2認証の手順は多いですが、テーマファイルの記述はシンプルで使い勝手が良いように感じました。
なによりもサーバへの負荷が軽いのが魅力的です。