WordPressでプラグインをバージョンアップしたところ、次のようなエラーメッセージが表示されて動作しなくなってしまいました。
Parse error: syntax error, unexpected '[' in ...
これは、プラグインの中のプログラムが、動作しているPHPのバージョンに合っていないときに発生するエラーです。特に近年多いトラブルが、上記のエラーメッセージによるもの。
PHP 5.3.x以前のバージョンにご注意
この問題が発生するのは、PHPのバージョン 5.3.xのバージョンです。実は、PHPは 5.4の時に大きな仕様変更がありました。このバージョンから、新しい書き方がサポートされるようになったのです。
そのため、プラグインも新しいバージョンからこの書き方を採用していることがあります。しかし、PHP 5.3.x以前のバージョンではこの書き方が利用できないため、冒頭のエラーになってしまうのです。
エラーが起こってしまったときの対処法
該当のプラグインを探る
このようなエラーが発生してしまった場合、まずはどのプラグインが原因となっているのかを突き止めましょう。もし、1つのプラグインをインストールまたはアップグレードしたときに、このエラーが発生した場合はそのプラグインを取り除けば良いでしょう。
もし、一度に多くのプラグインをバージョンアップして、どのプラグイン化が分からない場合はエラーメッセージの「ファイル名」部分を確認します。例えば、次のようになっている場合…
... in /.../wp-content/plugins/mw-wp-form/classes/...
「wp-content/plugins」の後に記載されているのが、プラグインのディレクトリ名です。この場合は「MW WP Form」が原因であることが分かります。このプラグインを取り除きましょう。
原因となるプラグインを取り除く
原因が分かったら、そのプラグインを取り除きます。これには、FTPクライアントソフトなどが必要になりますので、Webサーバーへの接続情報などを利用して接続しましょう。
接続したら、先のエラーメッセージのファイル名に従って「ディレクトリごと」削除します。エラーが起こっているのは、1つのファイルですがそのファイルだけを取り除いても解消しないので、必ずプラグインのディレクトリごと削除します。例えば、先の例では「wp-content/plugins」ディレクトリから「mw-wp-form」ディレクトリを削除しておきます。
これでひとまず、ページは正常に表示されるでしょう。もし別のプラグインでも同じエラーが発生した場合は、同じように削除してください。
旧バージョンをインストールする
こうして復旧作業ができますが、このままでは利用したかったプラグインが使えません。可能であれば、PHPのバージョンを 5.4以上(できればそれ以上の 5.6以上か 7.2以上にバージョンアップしましょう)にする事が望ましいですが、もし事情があって、古いバージョンのPHPを使い続けなければならない場合は、プラグインのバージョンを落とすことができます。
プラグインの旧バージョンは、各プラグインのページで右側の「詳細」をクリックするとアクセスできます。
画面を一番下までスクロールすると、旧バージョンが入手できるので、ここから利用できていたときのバージョンを入手しましょう。
入手したプラグインは、プラグインインストールページから「プラグインのアップロード」でインストールします。
PHPは最新のバージョンに
こうして、古いPHPのバージョンでWordPressを利用する方法を紹介しましたが、やはり理想は最新のPHPで利用することです。2018年9月現在、WordPressが推奨するPHPのバージョンは「7.2以上」となっています。(最低動作環境は 5.2、サポート環境は 5.6以上です)。
もし、利用しているサーバーが古いPHPにしか対応していない場合には、サーバーの引越しも含めて検討すると良いでしょう。