WordPressテーマ「THE THOR(ザ・トール)」で、人気記事ウィジェットが正しく表示されない、あるいは更新が止まってしまう問題は、多くのユーザーが直面する非常に厄介なトラブルです。
キャッシュクリアを徹底しても解決しない場合、原因は「目に見えるキャッシュ」ではなく、データベースに溜まった一時的なデータの「詰まり」にあるかもしれません。
今回は、あらゆるキャッシュ対策を試しても直らなかった不具合を、「設定のスイッチを一つ切り替える」ことで解消できた実例とそのメカニズムを解説します。
なぜ「キャッシュクリア」だけでは直らないのか?
通常、表示の不具合が起きると以下の対策を試すはずです。
- PWA機能の無婚化とキャッシュクリア
- LiteSpeed等のキャッシュ系プラグインによるキャッシュデータのパージ
- ブラウザ(Chrome)の開発者ツールでのデータ削除
しかし、これらを全て行っても不具合が続く場合があります。
それは、「人気記事のランキングデータそのもの」がWordPressのデータベース(Transients API)内に古い状態で固着しているからです。
このデータはブラウザやサーバーのキャッシュとは別物であるため、外側からいくら掃除しても「中身のデータ」が古いままでは表示は変わりません。
あきらめて「一晩置いたら直った」ことがあった
「不具合が起きた際、あきらめて一晩置いておいたら、翌朝には正常に戻っていた」という現象が起こることがありました。
これは単なる偶然ではなく、システムが自動で行う以下の挙動が関係していると考えられます。
- PWAの自動更新サイクル:
PWAのサービスワーカーは、ブラウザを一度閉じたり一定時間が経過したりすると、バックグラウンドで新しいデータを取得し直す性質があります 。 - データベースの自己洗浄:
データベース内に溜まった「トランジェント(一時データ)」には有効期限(TTL)が設定されています。
一晩置くことで期限が切れ、システムが自動的に古いデータを破棄して新しいランキングを生成したと考えられます。 - 日付による集計リセット:
「日・週ランキング」に設定している場合、日付が変わるタイミングで集計の再計算が走り、表示が正常化することがあります 。
解決の決め手は「リアルタイム集計」のトグル操作
「一晩待てない」「今すぐ直したい」場合に最も効果があったのは、「リアルタイム集計」設定のON/OFF切り替えでした。
操作の手順
- 「外観」>「カスタマイズ」>「基本設定」>「アクセスランキングの設定」を開く。
- 「リアルタイム集計を行う」にチェックを入れる。
- サイトを確認し、正常に表示されたら再度チェックを外しておく。

なぜこれで直るのか?(技術的な理由)
「リアルタイム集計」をONにすると、THE THORはデータベースに保存されていた「前日までの集計データ」を一度バイパスし、その瞬間のアクセス状況からランキングを強制的に再計算(リフレッシュ)したと考えられました。
この「再計算」が行われることで、データベース内で滞っていた古いデータが新しいデータに上書きされるため、設定を元(OFF)に戻した後も正常な表示が維持されるようになったと考えられます。
併せて確認すべき「3つのチェックポイント」
ランキング不具合を根絶するために、以下の設定も確認しておきましょう。
① 「Classic Widgets」プラグインの導入
WordPress 5.8以降、ウィジェット管理画面が「ブロックエディタ形式」になったことで、THE THOR独自のウィジェットが正常に動作しなくなる不具合が多発しています 。
これを防ぐには、公式プラグイン「Classic Widgets」を導入して、ウィジェット管理画面を旧形式に戻すことが必須です 。
② 画像が表示されない場合は「非同期読み込み」を疑う
もし不具合が「画像(アイキャッチ)が表示されない」というものであれば、THE THOR標準の「img非同期読み込み設定」と、他の画像プラグイン(EWWW Image Optimizer等)が競合している可能性があります 。
「SEO設定」>「img非同期読み込み設定」を無効にすることで解消されるケースが多いです 。
③ 503エラー(サーバー負荷)の回避
人気記事の集計はデータベースに負荷をかけます。
特にアクセスが急増した際に503エラーが発生し、集計が止まることがあります 。
このような場合は、集計対象期間を「全期間」から「月」や「週」などの短い期間に変更するか、サーバーの同時接続数上限に余裕を持たせることが重要です 。
まとめ:困った時の「データ・リフレッシュ」
THE THORの人気記事ウィジェットは非常に多機能ですが、その分、内部データの管理が複雑です。
「キャッシュを消してもダメだ」と思ったら、時間を置くのを待つか、一度ランキング設定のON/OFF切り替えや、アクセス数のリセットを試してみることをお勧めします。
データベースの内側からデータを新しくすることが、正常な表示を取り戻す一番の近道です。

