【WordPress】W3 Total Cacheをアップデートしたら500エラーが発生、解決方法

【WordPress】W3 Total Cacheをアップデートしたら500エラーが発生、解決方法

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