ページビュー関数の多重カウント
-
update_post_metaを使い、カスタムフィールドのページビューカウント関数を作り、
ページアクセス時にカウントを1追加、表示をしたいと思っています。
$page_view_count = get_post_meta(get_the_ID(),'view_count',true);
update_post_meta( get_the_ID(), 'view_count', $page_view_count + 1 );
echo $page_view_count;↑は一番簡易な形での表示ですが、元々はもう少し丁寧に関数を作ってBBpressでの表示を目標にしています。
他のテーマでは正常に動いているのですが、JINを使っているときだけ多重カウントされてしまいます。
一覧ページから個別ページを開いた時に1プラスされます(表示の直前にupdate_post_metaしているので当然といえば当然)が、
phpmyadminでDBの値を確認するとその時点で2プラスしています。
一覧ページ戻りリロードすると2プラスした値(phpmyadminと同じ値)が表示されます。
個別ページで直接リロードすると、元の値から2プラスされます。個別ページで多重カウントされているのは間違いないかと思うのでvar_dumpしてみましたが、
表示される限りでは1度しか実行されていないように見えます。
htaccessなどでのリダイレクトなどもしていません。元々はbbpressのアクションフックに対して関数を実行していましたがこのような状況なので
single.phpでカウント・表示するようにしてみましたが実行してみましたが変わらず、
フックするのをwp-loadedやwpなどに変更してみましたが変わらず、
フックではなく関数自体をheader.phpやfooter.phpなどにおいてみたりもしましたが変わりません。
子テーマでいじっているのが問題かと思いJIN本体に書いた上でJIN本体を有効化してみましたがそれでも変わりませんでした。
カスタムフィールド自体は自身で作ったもので、ファイル内に他で使われているような箇所はありません。
また、全く別のテーマ(twentynineteenや過去に自分で作成したテーマ)では正常に動いています。他になにか原因は考えられるでしょうか?
マニュアル確認済み
キャッシュクリア済み
プラグイン全停止済み
WordPressのバージョン : 5.2.1
ご利用のサーバー名 : ローカル(Xampp MariaDB)
PHPのバージョン : 7.1.7
OS : Windows8
ご利用のブラウザ : Firefox,Chrome
該当サイトのURL :