
WordPressの負荷軽減に役立つキャッシュプラグイン「W3 Total Cache」。
ただ、これを導入したことによって文字化けが起き、
リロードすると直るといった現象が発生することがあります。
これはサーバーの負荷が増えた際に、
読み込み時に完全なサイト情報が読み込めず、
半端にサイトの情報が読み込まれた時にたびたび発生するものです。
ここでは、文字化けを解消する方法を紹介します。
設定を変更する
WordPress管理画面メニューの「Performance」→「Browser Cache」で表示される設定項目の、「Enable HTTP (gzip) compression 」のチェックを外します。
(デフォルト状態ではチェックが入っている状態です。)
プラグインのプログラムを書き換える
ほんの少し、プラグインのプログラムを書き換えます。
FTPでサーバー上のプラグインファイルにアクセス(ファイルパス:「wp-content/plugins/w3-total-cache」)し、「PgCache_ContentGrabber.php」というファイルを探します。
エディタなどで開き、以下のように書き換えます。(1244行)
PgCache_ContentGrabber.php(修正前)
PgCache_ContentGrabber.php(修正後)
何をやったかというと、
修正前は配列$value0に値が確実に入っている前提として、条件trueの処理を行うプログラムになっていたのですが、それでは値が参照できずエラーになってしまいます。
そこで、is_array関数で配列の中身が0ではないことを確認した上で条件trueの処理を行わせるように修正しています。