PHPのバージョンを7にアップデートした際に、WordPressのサイトで
Warning: preg_replace(): The /e modifier is no longer supported のエラーが表示される
WordPressのサイトで以下のようなエラーが出る場合ですが、
1 2 3 4 5 |
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /wp-content/plugins/brBrbr300/brBrbr.php on line 24 Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /wp-content/plugins/brBrbr300/brBrbr.php on line 25 Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /wp-content/plugins/brBrbr300/brBrbr.php on line 26 |
エラーメッセージにも記載されています通り、brBrbr300プラグインを利用しているとこのエラーが表示され、brBrbr300 のプラグインファイル(PHP)内で記述されているpreg_replace
関数でのe修飾子が原因のようです。
preg_replace() エラーの回避策
この問題は、brBrbr300プラグインファイルを開き、エラーが表示された行を
1 |
$brbr = preg_replace('/(<form.*?>)(.*?)<\/form>/ise', "clr_br('$0')", $brbr); |
以下のようにpreg_replace_callback関数に置換することで解決できます。
1 |
$brbr = preg_replace_callback('/(<form.*?>)(.*?)<\/form>/is', function($m) {return clr_br($m[0]);}, $brbr); |
コメント