WordPressでPHP7にしたらW3 Total Cacheで警告が出たので消す方法

PHP7は、旧バージョンに比べて実行速度が倍ほど速くなると言われています。WordPressをPHP7で動かしたところ、管理画面の重いのが大分改善されたり、体験できるほどスムーズに動くようになった気がします。

しかし、キャッシュ系プラグインのW3 Total CacheではPHP7で以下のような警告が出るようです。

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

直し方をWordPress公式フォーラムで探したところ解決策が見つかり、警告が表示されなくなりました。

以下のファイルの一部分を修正するだけです。

/wp-content/plugins/w3-total-cache/lib/W3/Plugin/BrowserCache.php : 116行目
/wp-content/plugins/w3-total-cache/lib/W3/Plugin/Cdn.php : 242行目
/wp-content/plugins/w3-total-cache/lib/W3/Plugin/Minify.php : 131行目
/wp-content/plugins/w3-total-cache/lib/W3/Plugin/NewRelic.php : 31行目
/wp-content/plugins/w3-total-cache/lib/W3/Plugin/TotalCache.php : 512行目
/wp-content/plugins/w3-total-cache/lib/W3/PgCache.php : 331行目

参照渡しの&を取り除きます。

修正前(Before):

function ob_callback(&$buffer) {

修正後(After):

function ob_callback($buffer) {

これで警告が表示されなくなります。最後にキャッシュをクリアしないと警告が消えない可能性があるので、忘れずに。


PAGE TOP