WordPressサイトで使用しているキャッシュプラグイン「W3 Total Cache」をバージョン0.9.6にアップデートしたところ、500エラーが発生しました。
Chromeのシークレットモードや他のブラウザからのアクセスでは問題なく表示されています。どうやら、管理画面へのアクセスと、ログイン状態でフロントページにアクセスした場合にエラーになるようです。元々使っていたブラウザは500エラーでサイトにアクセスできないのログアウトできず、いつまでも500エラーのままです。
テーマはSimplicityを使用しているのですが、functions.php
に追記していた、Simplicityのスマホ判定をW3 Total Cacheの判定に合わせるコードがエラーの原因でした。コードをコメントアウトしたところ、問題なく動作しました。
// W3 Total Cache バージョン0.9.6 で500エラーになるのでコメントアウト /* if (function_exists('w3_instance')) { function is_mobile() { $cache = w3_instance('W3_PgCache'); $group = $cache->_get_mobile_group(); return "high" === $group || "low" === $group; } } */
コードを残しておきたい場合は、管理画面へのアクセス、もしくはログイン状態でのアクセスが500エラーになるので、「管理画面へのアクセス、もしくはログイン状態以外の場合」という条件を加える形でもOKです。こちらでも問題なく動作しました。
// 管理画面、もしくはログインユーザー以外の場合 if( !( is_admin() || is_user_logged_in() ) ) { if (function_exists('w3_instance')) { function is_mobile() { $cache = w3_instance('W3_PgCache'); $group = $cache->_get_mobile_group(); return "high" === $group || "low" === $group; } } }
Simplicityを利用している場合は、functions.php
を見直してみてください。
「W3 Total Cache」は便利なプラグインなのですが、たまにエラーを起こし、毎回原因の特定に時間がかかるのが困りものです。