WP Super Cacheで Undefined variable: supercache_home エラーが出る時

WordPressは重い

と、よく言われるので、キャッシュ系のプラグインを入れている方も多いとおもいます。

一番有名なのは、おそらく「WP Super Cache」でしょう。

WP Super Cache

 

 

しかし、このプラグインを入れてから、

ページを保存するときに下記のエラーが出て、真っ白になってしまった・・

 

という方も、少なくないんじゃないでしょうか。

少なくとも、最新バージョンに変わったここ4ヶ月くらい。

このエラーに対する改善版がリリースされていません。(2017.06.03現在)

 

このエラーは、ページを保存するときに出ます。

 


Notice: Undefined variable: supercache_home in /home/users/0/lolipop.jp-{your_ID}/web5/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 1143

Warning: Cannot modify header information - headers already sent by (output started at /home/users/0/lolipop.jp-{your_ID}web/wp-content/plugins/wp-super-cache/wp-cache-phase2.php:1143) in /home/users/0/lolipop.jp-{your_ID}/web/wp-admin/post.php on line 197

Warning: Cannot modify header information - headers already sent by (output started at /home/users/0/lolipop.jp-{your_ID}/web/wp-content/plugins/wp-super-cache/wp-cache-phase2.php:1143) in /home/users/0/lolipop.jp-{your_ID}/web/wp-includes/pluggable.php on line 1195

 

で、該当の場所を見ると
wp_cache_debug( "wp_cache_post_id_gc clearing cache in {$supercache_home}page/." );
$supercache_home = get_supercache_dir();

 

という部分でエラーがあるらしい。

 

どうやら、1番目のエラーは

「$supercache_home が定義されていないよ」というもの。

そして、それに連動して、wp_cache_debugでエラーが出るので、他の2つが出ているようです。

 

 

ということは

$supercache_home = get_supercache_dir();

これの出現位置が違うだけみたいですね・・。

上下の順番を入れ替えて、supercache_homeの定義を先にしてあげると、エラーが無くなります。

 

$supercache_home = get_supercache_dir();
wp_cache_debug( "wp_cache_post_id_gc clearing cache in {$supercache_home}page/." );

僕の場合は、こうして変更したファイルをアップしています。

 

修正するファイルの場所は

wp-content/plugins/wp-super-cache/wp-cache-phase2.php

こちらのファイルの1143行目。

 

 

同じエラーで悩んでいる方は、試してみてください。

本体ファイルを修正するので、プラグインのアップデートが行われたら、元に戻りますが・・

 

次のバージョンアップでは解決していることを祈って(汗

こんな開発室も読まれています