実現したいこと
WPで実装したサイトのリアルタイム訪問者数をサイトに表示したいです。
発生している問題・分からないこと
Xserverで構築したオリジナルテーマのWPサイトに、リアルタイムの訪問者数を表示するために、
以下のコードを記述しました。
しかし、数日ほど訪問が確認できたのですが設置した、counter.txtの数値が急に994や1000など初期値の数字より減って関係のないと思われる数字が表示されてしまいます。
どのような原因が考えられるか、コードを修正して解消できるのかご教示いただけますと幸いです。
また、他に確認すべき情報があれば教えてください。
・手元のテスト環境では問題再現せず、相手環境だけで発生
・サーバパネルには入れません。(wpの管理画面はアクセスでき、FTPでサーバ接続済み)
・counter.txt のパーミッションは644です。
・memory_limit:1G
・同時アクセスが極端に多いサイトではない
・意図的に、counter.txtを手動で書き換えはしていません。
どうぞよろしくお願いいたします。
エラーメッセージ
error
1エラーメッセージは確認できませんでした。
該当のソースコード
php
1<p class="header-nav__top-txt"> 2 あなたは<span> 3 <?php 4 session_start(); 5 6 $file = ABSPATH . 'wp-content/uploads/counter.txt'; 7 $today = date('Y-m-d'); 8 9 // 初期値の設定(旧サイト訪問者数からの続きにしたい) 10 if (!file_exists($file)) { 11 file_put_contents($file, 920, LOCK_EX); 12 } 13 14 $count = (int)file_get_contents($file); 15 16 // 今日初めての訪問かどうか判定 17 if ( 18 (!isset($_SESSION['visited_date']) || $_SESSION['visited_date'] !== $today) && 19 (!isset($_COOKIE['visited_date']) || $_COOKIE['visited_date'] !== $today) 20 ) { 21 $count++; 22 file_put_contents($file, $count, LOCK_EX); 23 $_SESSION['visited_date'] = $today; 24 setcookie('visited_date', $today, time() + 86400, '/'); 25 } 26 27 echo $count; 28 ?> 29 </span>人目の訪問者です! 30 </p> 31 32
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
最終的にLOCK_EXを入れたのですが、上書きされてしまいます。
補足
特になし
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2025/09/28 11:34