どうも、n o v a です。
最近クライアントさんから記事本文が出てこないというご質問を受けまして、調べたところ、サーバーのアップデートに対して、brBrbrというプラグインが不具合を起こしていることが判明しました。
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のバージョンを7.0.0以降にアップデートしたことが原因とのことでした。
PHP7.0.0では “/e” 修飾子を使うことがサポートされなくなったということです。
”preg_replace_callback()”に書き直すことでエラーが解消するとの情報を得ましたので早速やっていきましょう。
まずは、プラグインから入ります。
brBrbrの編集画面を開きます。
以下のHTMLコードで検索
brBrbr.php 24行目~26行目にあるHTMLコードです。
1 2 3 |
$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); |
検索の仕方は、
◆macの場合はcommand+F
◆Windowsの場合はCtrl+F
を押してディスプレイ右上に出てくる検索窓に上記コードを入力して
Enterを押すことで簡単に探すことができます。
選択した箇所を以下に差し替えてください。
1 2 3 |
$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); |
最後に忘れずに更新ボタンをポチッと。
以上で作業は終了となります。お疲れさまでした。
もし元に戻せなくなったり、変な場所を消してしまった場合は
以下のページからダウンロードしなおしてくださいね。
【brBrbr】ダウンロード
以上、brBrbrで文字化けするときの直し方でした。
n o v a