W3 Total CacheをPHP 7.0でも動作させる方法

WordPressのキャッシュプラグイン「W3 Total Cache 0.941」はそのままではPHP 7.0でMinify機能が一切動作しません。しかし、わずかなソースコード修正で動作させることができます。

広告 (下に続く)

W3 Total CacheはそのままではPHP 7.0で動作しない

「W3 Total Cache 0.941」のMinify機能はプログラムミスがあって動作しません。ちなみに次のようなエラーが発生します。

PHP Warning: Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in /wp-includes/functions.php in 3269

Warningですが、PHP 7.0からはPHP自体の仕様変更により動作しなくなりました。

広告 (下に続く)

修正方法

修正方法が非公式のgithubのコミットで確認できます。ちなみにこのコミット後にリリースされた0.941ではなぜかこのコミットが適用されていません。流石に次のアップデートでは修正されると思います。

Fixing Warning on HHVM · gadelkareem/wp-w3-total-cache@e71030e
\nWarning: Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in /wp-includes/functions.php on line 3269

まとめると/lib/W3/Plugin/TotalCache.phpの512行目

function ob_callback(&$buffer) {

function ob_callback($buffer) {

に変更します。

広告 (下に続く)

W3 Total Cacheは開発終了?

先ほど紹介した非公式のコミットのコメントにも言われていますが、チームはW3 Total Cacheの開発に注力しなくなってしまったようです。脆弱性には対応されているようですが、それ以外の新機能は期待できないようです。今後もトラブルが発生する場合があります。

シェアする