Advanced Custom Fields で投稿にPV数を表示する方法

Advanced Custom Fieldsで記事ごとのPV数を表示する方法
投稿した記事が何PVくらいあるのか表示したいなぁ。でも、プラグインを使うと細かいところがカスタマイズできないんだよなぁ

そこで、今回はプラグインなしで記事のPV数をカウントする方法を紹介します。

Advanced Custom Fields で投稿にPV数を表示する方法

Advanced Custom Field(以下、ACFという)、使っていますか?とても便利なプラグインで、記事の定型入力文を作るのにとても役立ちます。

詳しい使い方は、はにわまんさんがこちらの記事(「Advanced Custom Fields」の使い方と出力方法のまとめ)で説明しています。

ざっと説明すると、ACFにpost_views_countというフィールドをつくり、記事ごとにpost_views_countの値を持っているので、1PV見られるごとにpost_views_countの値をカウントアップしていく、という流れとなります。

ではいってみましょう。

Advanced Custom Fieldsの設定

以下のように設定します。

フィールドラベル post_views_count
フィールド名 post_views_count
フィールドタイプ 数値
説明 pv数をカウントする関数
末尾に追加 views
最小値 0
最大値 99999999
ステップサイズ 1

 

advanced custom fields PVカウントの設定例

functions.phpの設定

Google botなど、Googleは記事をインデックスするためにクローラというロボットをサイト内に巡回させています。このロボットをアクセスカウントの対象外にしたいため、functions.phpにis_bot()を定義します。

PV数を表示したい位置へのコードを追加

説明

  • get_field()はACF(Advanced Custom Fields)プラグインの関数。引数のpost_views_countはフィールドをACFで設定する。
  • is_user_logged_in()で、サーバ管理者のアクセスはカウント対象外にする。
  • is_bot()でクローラーのアクセスはカウント対象外にする。
  • update_field()はACFプラグインの関数。これで$post_views_countフィールドをアップデートする。
  • number_format()は、数が大きい時に、3桁ずつカンマ区切りにしたい時に使用する。カンマはいらないよ、って場合は echo $count としておけばOK。

参考記事

Advanced Custom Field公式サイト(英語)
PV数を表示する方法(プラグインなし)