あるWordpressのサイトでページビュー数(PV)カウントで不具合があり原因が特定できず困っています。
ページビュー数(PV)をカウントする関数をfunctions.phpに追加し、カウントを行っています。
#不具合
他の記事のページビュー数とおなじになってしまう現象が起きています。
導入当初は問題なくカウントされているのですが
A記事:19000PV
B記事:15000PV
C記事:12000PV
↓
A記事:22000PV
B記事:22000PV
C記事:22000PV
どのタイミングかはわからないのですが、
同じPV数になってしまいます。
#ページビュー数カウントを行う関数・ソース
記述している箇所は以下2箇所です。
####functions.php
以下functions.phpに記述しています。
php
1<?php 2//ページビュー数の取得 3function get_post_views($postID){ 4 $count_key = 'post_views_count'; 5 $count_views_get = get_post_meta($postID,$count_key,true); 6 if($count_views_get==''){ 7 delete_post_meta($postID,$count_key); 8 add_post_meta($postID,$count_key,'0'); 9 return "0"; 10 } 11 return $count_views_get; 12} 13//ページビュー数の保存 14function set_post_views( $postID ) { 15 $count_key='post_views_count'; 16 $count_views_set=get_post_meta($postID,$count_key,true); 17 if($count_views_set=='') { 18 $count_views_set=0; 19 delete_post_meta($postID,$count_key); 20 add_post_meta($postID,$count_key,'0'); 21 } else { 22 $count_views_set ++; 23 update_post_meta($postID,$count_key,$count_views_set); 24 } 25} 26?>
####header.php
カウントを行うためheader.phpに以下を記述しています。
php
1<?php if(!is_user_logged_in()){set_post_views(get_the_ID());} ?> 2
ログインしているユーザはカウントしないため、if文でログインしていないユーザの振り分けで条件分岐しています。
#参考ソース
https://www.torat.jp/wordpress-post-ranking/
#アドバイスお願いします
条件としては、他のプラグインなどを使用せず、一度この関数で解決で進めていく形で、
問題がある場合、その問題を知りたいです。
情報が少なく、具体的な回答が難しいと思いますが、
この内容で考えられる原因や改善方法などありましたら、教えていただきたいです。
よろしくお願いいたします。
あなたの回答
tips
プレビュー