レンタルサーバーの設定を変えて、PHPのバージョンを7.1に変更すると、突如エラーが発生しました。
Parse error: syntax error, unexpected ‘new’ (T_NEW) in /xxxx/wp-content/plugins/exec-php/exec-php.php on line 22
これは、投稿記事内でPHPのコードを実行出来るようにするプラグイン「Exec-PHP」がPHP7.1以降に対応していないためのエラーです。
PHP7.1では、変数にクラスの参照代入ができなくなったためだそうで、プラグインのソースコードそのものに問題があることを示しています。
対策として、代わりのプラグインも試しましたが、同様にエラーが出たり、古すぎてWordPressの管理画面からは探せなかったりしてイマイチ。
ということで、ひとまず、Exec-PHP のコードそのものを変更して対処することにします。
プラグインのコードを変更するにはFTPクライアントなどから直接ファイルを開きます。
まずは、エラーの出ている、exec-php.phpを編集。
/wp-content/plugins/exec-php/exec-php.php
このファイルの22行目に、
とありますので、 =& の &を削除します。
でも、これをしてもまた新たなエラーが発生します。
Parse error: syntax error, unexpected ‘new’ (T_NEW) in /xxxx/wp-content/plugins/exec-php/includes/manager.php on line 36
こんどは、manager.phpに問題があるようです。
/wp-content/plugins/exec-php/includes/manager.php
を開くと、36,37,38,39行目に同様に=&があります。
これも&を削除します。
他にも、
/wp-content/plugins/exec-php/includes/cache.php の22行目、39行目
/wp-content/plugins/exec-php/includes/ajax.php の64行目
にそれぞれ &= となっているところがあるので修正します。
これでエラーは出なくなります。