
Photo Trevor Cole via Unsplash
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」は便利なプラグインなのですが、たまにエラーを起こし、毎回原因の特定に時間がかかるのが困りものです。