ワードプレスを運用しているサーバーでphpバージョンを7以上に変更した場合によく出るFatal syntax error, unexpected ‘new’ (T_NEW) エラーについて解説いたします。

php7で使えないプログラムコードによるエラー

php7では下記のようなコードがエラーを出力します。

$c =& new C;

php7ではNEW 演算子により、クラスを使用する場合の参照に&記号を付けてはいけないというルールになっています。
このコードは古いプラグインでは結構使われており、php7に変更してワードプレスが真っ白になったりFatal: syntax error, unexpected ‘new’ (T_NEW) エラーが出る場合はこのプログラムの記述方法が使われていることが疑われます。

Fatal syntax error, unexpected ‘new’ (T_NEW) エラー の対処方法

1 ワードプレスで真っ白(500エラー)になっていてエラー内容がわからない場合は、WP-CONFIG.PHPというサーバー上のワードプレスのトップディレクトリにある設定ファイルの下記の行を

define('WP_DEBUG', false);

下記のように書き換えます。

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY',true);
ini_set('display_errors',1);
error_reporting(E_ALL);

これでエラーの種類や所在ブラウザー上に出力されるようになります。

2 エラーを出しているファイルの所在を確定します。例えばエラー出力が下記のような文言の場合

Parse error: syntax error, unexpected 'new' (T_NEW) in /var/www/wp-content/plugins/aaa/test.php on line 10

ワードプレスのプラグインフォルダ(wp-content/plugins/)にあるaaaというフォルダ名のプラグインのtest.phpの10行目に& new 記述方が使われている可能性がございます。

例えば下記のような記載がある場合は

$c =& new C;

下記のように書き換えることでエラーを修正することが可能です。

$c =new C;

WordPress ワードプレスのPHPバージョンのアップデート、プラグインやテーマのエラーの解消のご相談・ご依頼はWPドクターまでお気軽にお送りください