[WordPress]プラグイン無しで記事のアクセス数をカウントする関数と、アクセスランキングの表示を行うスニペット

記事のアクセス数をプラグイン無しでカウントする方法について。

今回は海外のこちらの記事を参考にしました。モロパクリじゃアレなので、集計したアクセス数の順番で「アクセスランキング一覧(人気記事一覧)」を表示するコードも作ってみます。

アクセス数をカウントする関数

参考にしたスニペットは、記事ごとのカスタムフィールドの値を操作する関数を使ってアクセス数をカウントしています。まず、functions.phpにこちらのコードを加えましょう。

最初にアクセスしたときは勿論「0(ゼロ)」なのですが、そのときに表示する文字は 9行目の「return “0 views”;」という部分になります。ので、変更したい場合はここの「”0 views”」を修正しましょう。

 

そして次に、アクセス数を表示したい位置で関数を使います(記事や固定ページでしか使えません)。自分がログインしている場合にカウントして欲しくない場合はis_user_logged_in()を使ってカウントを回避します。

これでアクセス数の表示、集計ができます。

アクセススランキングの表示

そして、上記のアクセス集計を使ってアクセスランキングを表示してみます。以下のソースコードをサイドバーなどに貼り付けて使います。投稿記事をアクセス数の順番で5記事表示するソースコードです。

もしカスタム投稿タイプで使いたい場合は4行目を修正、表示数を変更したい場合は5行目の数字を変更して使います。

参考記事:

複数のカスタムフィールドでソート – SEEDS Creator’s Blog

is_user_logged_in:WordPress私的マニュアル

 

2014年09月13日追記:

すみません。「orderby」の指定を「’meta_value’」ではなく「’meta_value_num’」にしなければ正しい順番になりませんでした。上のソースコードでは7行目の部分を修正してあります。

2014年09月28日追記:

なんだかアクセス数が異様に伸びてしまうのですが、多分これは検索エンジンなどのBOTが原因かもしれません。これでは信用出来ない数字になるので、検索エンジンは除外するコードを追加してみます。

【PHP】アクセスがBOTかどうか判断する』にあるisBot()のソースコードをfunctions.phpに記述します。これはアクセスがBOTかどうかを判定する関数です。これを判定処理に追加します。

これでBOTのアクセスを除外できるでしょう。


人気記事の定義は「コメントの数順」や「ソーシャルでのシェア数順」などがあるのでとりあえずアクセスランキングという名前にしてみました。他には「よく読まれている記事」も良いと思います。

最終更新日:2017年3月19日

コメント

「何かそこ違うよ」「こうした方が良い」っていう部分があったら指摘して頂けると嬉しいです。

トラックバック

Trackback: https://increment-log.com/wordpress-access-count/trackback/