Compilation failed: unrecognized character afterの意味
preg-match関数に、解釈できない文字列が渡された
考えられるエラーの原因
preg-matchに例えばエスケープする必要の無い文字が渡されたとき等にこのエラーが発生します
例:
preg-match(/\<title\>/s);
*正規表現では<や>はエスケープする必要はありません
正規表現でエスケープしなければいけない文字は下記だけです
( ) ^ $ [ ] \ | . * + ? { }
エラーの対処方法・修正方法
ワーニングを題している部位を探し、正規表現が正しく記載されているか調査します
ワーニングの出力にワーニングを出しているプラグインやテーマの記載があります
例:
Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 5 in ・・・wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/router/class.routing_app.php
プラグインやテーマをアップデートする
プラグインが古い場合、最新のバージョンのプラグインではこのエラーが解消されている可能性があります。ワーニングを題しているプラグインやテーマがわかれば、そちらをアップデートしてみましょう。
PHPのバージョンを確認する
お使いのサーバーのPHPが5.6以下の場合PHPのバージョンが古すぎることによってこのワーニングが表示されることがあります。
PHPのバージョンを調べるには
<?php phpinfo(); ?>
と記載したテキストファイルをinfo.phpという名称で保存し、FTPでサーバー上にアップロードし、ブラウザでアクセスしてみます。もし5.6以下だった場合は各サーバー会社の設定方法でPHPのバージョンを上げてみましょう。
(PHP7以上にすると別のエラーが出る可能性がありますのでご注意ください)