WordPress brBrbrプラグインでエラー!Warning: preg_replace()を解決する方法

WordPress brBrbrでWarning: preg_replace()・・のエラーを解決する方法です。

WordPress brBrbrプラグインでエラー!Warning: preg_replace()を解決する方法

「brBrbr」とは、本文中の改行を改行しただけ改行した分だけ <br /> に変換してくれるという WordPress の便利なプラグインです。

WordPress 改行プラグイン brBrbr

あるとき、下記のメッセージが出て動かなくなりました。

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

ふむ・・・、PHP のバージョン上げたな・・・そういえば。。。

というわけで brBrbr300でWarning: preg_replace()・・・を解決する方法 を掲載しておきます。


brBrbr300のエラー解決方法

「preg_replace()」 というのは PHP の関数で、「関数置換」をする方法の1つです。

このメッセージが起こる原因としては、PHP のバージョンを 7.0.0 以降にアップデートしたことによります。PHP 7.0.0 以降では「preg_replace()」で "e" 修飾子を使うことがサポートされなくなりました。メッセージのとおり「preg_replace_callback()」に書き直してエラーを解消させましょう。

・brBrbr.php 24行目~26行目

 $brbr = preg_replace('/(<pre.*?>)(.*?)</pre>/ise', "clr_br('$0')", $brbr);
 $brbr = preg_replace('/(<script.*?>)(.*?)</script>/ise', "clr_br('$0')", $brbr);
 $brbr = preg_replace('/(<form.*?>)(.*?)</form>/ise', "clr_br('$0')", $brbr);

これを・・・、

  $brbr = preg_replace_callback('/(<pre.*?>)(.*?)</pre>/is', function($m) {return clr_br($m[0]);}, $brbr); 
  $brbr = preg_replace_callback('/(<script.*?>)(.*?)</script>/is', function($m) {return clr_br($m[0]);}, $brbr);
  $brbr = preg_replace_callback('/(<form.*?>)(.*?)</form>/is', function($m) {return clr_br($m[0]);}, $brbr);

のように変更します。

FTP ツールを使う場合には /wp-content/plugins/brBrbr300/ から brBrbr.php をダウロードしてきて編集し、アップロードします。

FTPでbrBrbr.phpをダウロードして編集

WordPress 管理画面から修正する場合は、「プラグイン」-「インストール済みプラグイン」-「brBrbr」の編集をクリックします。

WordPress 管理画面からbrBrbr.phpを編集

該当箇所を修正して、「ファイルを更新ボタン」を押下すれば おしまい です。

本家サイト

まとめ

「brBrbr」は便利なプラグインですが、コーディングの古さが目立ってしまったというところでしょうか。

WordPress の管理画面からアップデートできないと、こういった事態も起こるんですねー。

次回から気を付けないと。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。