kihara

【WordPress】サーバ負荷が軽い「Simple GA Ranking」プラグインで人気記事ランキングを表示する方法

人気記事ランキングを表示させるプラグインは「WordPress Popular Post」「WP-PostViews」など色々あります。
今回は、Google Analyticsのデータを元にランキングを表示する「Simple GA Ranking」の使用方法をご紹介します。

◆目次

  1. プラグインのインストール
  2. OAuth2認証とプラグインの設定
  3. サイトに表示する
  4. フックの設定

プラグインのインストール

管理画面の「プラグイン」>「新規追加」より「Simple GA Ranking」で検索し、インストールと有効化を行ってください。

1

OAuth2認証とプラグインの設定

管理画面の上部に「Simple GA Ranking is available OAuth2 authorization. Please set on setting panel. ClientLogin is no longer available. Please see this link」
というメッセージが表示されるので、「setting panel」をクリックしてください。

2

「Google Analytics設定」の画面が表示されます。
「クライアントID」「コンシューマーシークレット」を設定する必要があるので、これらを取得するために、Google APIの設定を行っていきます。

「Google API Console」をクリックします。
※Google API画面へ飛びますので、別ウィンドウで開く方がその後の作業がしやすいです。

3

「プロジェクトを作成」ボタンをクリックします。

4

「プロジェクト名」を入力し作成します。(作成に少し時間がかかるのでじっと待つ)

5

作成が完了するとライブラリ画面へ移動するので、「その他の一般的な API」の「Analytics API」をクリックします。

6

「有効にする」をクリックして、有効化します。

7

認証情報へ進みます。

8

「クライアントID」をクリックします。

9

「同意画面を設定」をクリックします。

10

必要な情報を入力し「保存」をクリックします。(メールアドレスとサービス名は必須)

11

「ウェブアプリケーション」を選択します。承認済みのリダイレクトURL(※)を入力して保存すれば完了です。

12

※承認済みのリダイレクトURLはWordPressの管理画面 Google Analytics設定画面にある「コールバックURL」を入力します。

3-%e3%82%b3%e3%83%94%e3%83%bc

クライアントIDとシークレットが表示されますので、コピーをします。

13

Google Analytics設定画面に貼り付けます。

3

「トークンを取得」をクリックし、googleの認証画面で「許可」をするとトークンの取得が完了します。

統計データを利用するアカウントを選択し「保存」をすると、設定が完了します。

14

サイトに表示する

サイトに表示するには、「ウィジェット」で表示する方法、「ショートコード」を使用する方法、テーマファイルに記述する方法がありますが、今回はテーマファイルに記述する方法をご紹介します。

以下の条件で、ランキングを表示してみます。
・カスタム投稿: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認証の手順は多いですが、テーマファイルの記述はシンプルで使い勝手が良いように感じました。
なによりもサーバへの負荷が軽いのが魅力的です。


・プラグインページ
https://wordpress.org/plugins/simple-ga-ranking/

・公式サイト
http://simple-ga-ranking.org/

新しいウェブ体験を作ろう TAMのPWA開発
お問い合わせはこちら