Jetpackの統計情報を利用してWordPress個別ページにアクセス数表示を行う方法

WordPressにJetpackのアクセス解析を導入しているサイトも結構あるかと思います。

そんな、Jetpackの統計情報を利用して、投稿・固定ページ等に以下のような統計情報を表示するカスタマイズ方法の紹介です。

JetpackでPV表示のカスタマイズ例

WordPress Popular Postsプラグインを利用しても、同様の機能を持つカスタマイズは行うことができます。ただ、Popular Postsはサーバーに負担がかかるプラグインとしても有名です。

反面、Jetpackの統計情報は外部サーバーが集計してくれるので、「サーバーに負担をかけたくない」と言うのであれば、こちらの方法の方が適しています。

スポンサーリンク
レクタングル(大)広告

主な手順

カスタマイズの主な手順は以下のようになります。

  1. Jetpackプラグインをインストールする
  2. テーマのテンプレートファイルにPHPコードをコピペする
  3. 必要な場合はCSSで見た目の調整をする

プラグインのインストール以外は、コードをコピペするだけなので、比較的簡単にできるかと思います。

Jetpackプラグインをインストールする

まず、Jetpackを利用していない場合は、インストールして統計機能を有効にしておく必要があります。

まずはJetpackをインストールする

Jetpackをインストールした時点で、デフォルトで「サイト統計情報」機能は有効になっていると思います。

統計機能が無効になっている場合は、Wordpress管理画面の「Jetpack → 設定 → Engagement」にある「サイト統計情報」を有効にしてください。

Jetpackのサイト統計情報を有効にする

これで事前準備は完了です。

Jetpackがインストールされていなかったり、サイト統計情報が有効になっていない場合は、特に何も表示されません。今回紹介するのは、Jetpack未インストールでも、エラーは出ず、スルーされるカスタマイズ方法です。

テーマのテンプレートファイルにPHPコードをコピペする

あとは、投稿ページや、固定ページのWordpressテンプレートファイルの表示させたい場所に、以下のコードをコピペするだけです。

<?php //Jetpackで管理者のみにPV表示
//Jetpackがインストールされていて統計機能が有効になっているか
$is_jetpack_stats_module_active = class_exists( 'jetpack' ) &&
    Jetpack::is_module_active( 'stats' );
//ログインユーザーでJetpackが有効な時のみ実行
if (  is_user_logged_in() && $is_jetpack_stats_module_active ): ?>
  <div class="admin-pv">
  <?php //全体、月別、週別、日別のPV表示
    $views_all = 0;
    $views_monthly = 0;
    $views_weekly = 0;
    $views_daily = 0;
    //Jetpack

    //全体のPVを取得
    $jetpack_views = stats_get_csv('postviews', array('days' => -1, 'limit' => 1, 'post_id' => $post->ID ));
    if (isset($jetpack_views[0]['views'])) {
      $views_all = $jetpack_views[0]['views'];
    }
    //直近30日のPVを取得
    $jetpack_views = stats_get_csv('postviews', array('days' => 30, 'limit' => 1, 'post_id' => $post->ID ));
    if (isset($jetpack_views[0]['views'])) {
      $views_monthly = $jetpack_views[0]['views'];
    }
    //直近7日のPVを取得
    $jetpack_views = stats_get_csv('postviews', array('days' => 7, 'limit' => 1, 'post_id' => $post->ID ));
    if (isset($jetpack_views[0]['views'])) {
      $views_weekly = $jetpack_views[0]['views'];
    }
    //直近1日のPVを取得
    $jetpack_views = stats_get_csv('postviews', array('days' => 1, 'limit' => 1, 'post_id' => $post->ID ));
    if (isset($jetpack_views[0]['views'])) {
      $views_daily = $jetpack_views[0]['views'];
    }

    echo '<span class="all">全体:<span class="pv-count">', $views_all, '</span></span>';
    echo '<span class="monthly">月:<span class="pv-count">', $views_monthly, '</span></span>';
    echo '<span class="weekly">週:<span class="pv-count">', $views_weekly, '</span></span>';
    echo '<span class="daily">日:<span class="pv-count">', $views_daily, '</span></span>';
    echo '<span class="jp-page"><a href="'.admin_url().'admin.php?page=stats&view=post&post='.get_the_ID().'"title="Jetpackの統計" target="_blank">詳細</a></span>';
  ?>
  </div>
<?php endif ?>

大抵のテーマであれば、投稿ページであればsingle.php。固定ページであればpage.phpあたりに貼り付ければいけるかと思います。

それぞれのテンプレートファイル内で、さらに細分化されたテンプレートが呼び出されている場合は、調べて貼り付ける必要はあると思います。

参考 Jetpackから閲覧数を簡単に取得してみた。singleページに一行追加でOK。 | Amiten.inc – web企画・制作の株式会社アミテン

CSSで見た目の調整をする

あとは、多少見た目を調整するために、style.css等に以下のようなスタイルを追記します。

.admin-pv {
    text-align: right;
}
.admin-pv > span {
    margin: 0 5px;
    padding: 0 3px;
}

全体・月・週・日別のPV表示部分には、個別にclassが割り当てられているので、ある程度は自由にスタイルもカスタマイズできるようHTML要素を出力しています。

動作確認

カスタマイズ後は、PHPコードを挿入した部分に、以下のような「ページ単位の統計情報」が表示されます。

カスタマイズ後のJetpack PV動作確認

Jetpack統計情報の仕様で、「全体」「月」「週」のアクセス数が、「日」よりも少なく表示されることがあります。時間がたてば、統計全体にアクセス数が反映されます。

「詳細」リンクは、個々のページの解析画面へのリンクです。

Jetpack PVの詳細リンク

リンクをクリックすると、以下のような「ページアクセス状況推移グラフ」を表示できたり、

ページアクセス状況推移グラフ(Jetpack)

月別、週別、日別の数値を見て、増減を細かに調べることもできるようになっています。

日別ページアクセス状況推移表

このカスタマイズの利点と難点

今回のカスタマイズは、以下のような利点と難点があるのでご注意ください。

利点

このカスタマイズを行うことによる利点は以下のようなものがあるかと思います。

  • サーバーへの負荷が少ないJetpackで、ページごとのアクセスを表示できる
  • Jetpackの機能を利用した詳細な解析画面も利用できる

とにかく、サーバーへの負荷を少なくしたいのであれば、Wordpress Popular Postsよりは、Jetpackを用いて表示させた方が良いかと思います。

難点

反面、Jetpackを利用する難点は以下。

  • Jetpackのサーバーから解析結果を得るので表示が多少遅い

Jetpackサーバー(wordpress.com)からデータを取得するので、データ取得に時間がかかり、多少表示は遅くなるかと思います(データベースから取得するよりは)。ですので、一覧ページなどで何個も表示させるカスタマイズをする場合は、かなり時間がかかるので不向きです。

また、管理者以外に「ページ毎のPV情報」を公開する場合も、Jetpackサーバーに負荷がかかる可能性があるので、あまりおすすめはしません。あくまで自分(もしくは複数管理者)が見る程度の利用にしておいた方が良いような気がします。

まとめ

こんな感じで、「サーバーになるべく負荷のかからないページ毎PV表示機能」を追加することができます。

Google Analyticsとかを利用していると、個別ページの解析ページにたどり着くまで結構な手順を踏む必要があったりします。

反面、今回のカスタマイズだと、「内容確認等で自分のサイトを閲覧」するついでに、「ページ毎のPV状況」も確認することができて、かなり楽です。

というわけで、「自分のサイト確認のついでにページ毎PVの確認もしたい」とか「サーバーになるべく負荷をかけずページ毎PVの確認がしたい」なんて場合には良いかと思います。

Simplicityを利用している場合は、同様の機能があるのでカスタマイズ不要です(カスタマイズを行って機能が重複する方が結構おられるので一応)。

『Jetpackの統計情報を利用してWordPress個別ページにアクセス数表示を行う方法』へのコメント

  1. アバター画像 名前:わいひら 投稿日:2017/07/03(月) 21:02:12 ID:f3108921f

    「全体のみのPV表示」をしたり、「管理者だけではなく読者(検索やSNSで訪問した方)にもPV表示したい」人向けのカスタマイズ方法の質問があったのでトピックへのリンク。
    「Jetpackの統計情報を利用してWordPress個別ページにアクセス数表示を行う方法」のカスタマイズ