WordPressで “Warning: preg_replace(): Compilation failed” のエラーが出た時の対応例

昨日ブログポスト後、サイトにアクセスしようとすると、Browserに下記エラーが出た。

Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/shg2/tazanrock.com/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 340

2021年8月24日夜辺りから25日の午前中に当ブログにアクセスした方は、いきなりこのエラーメッセージを目にして驚いた方もいらっしゃるでしょう。驚かせてしまい申し訳ありませんでした。現在は対応終了していますので、その対応履歴を。

とりあえずエラーメッセージでググると、下記ブログが目に入りました。

PHP 7.3 にバージョンアップ後 Crayon Syntax Highlighter プラグインで Warning: preg_replace(): Compilation failed エラーが表示される場合の対処法 – Unofficial Web Site Tokyo (unofficialtokyo.com)

見ると確かに、Warningの中に、/wp-content/plugins/crayon-syntax-highlighter が見える。

Warning文ををよく見て、文中に”plugins”やplugin名があれば、そのpluginを調べるのがひとまずの対応。

このcrayon-syntax-highlighter、元々のwordpressのエディタ(Classic Editor)で利用する分には問題ないけれど、最近広まってきたブロックエディターGutenbergで利用する場合には問題がある様です。

最近はGutenberg上で動くEnlighter – Customizable Syntax Highlighterにすっかりお世話になっていたので、敢えてCrayon Syntax Highlighterの無効化をする事は考えていませんでした。

直接使っていなくても、有効化しているだけで問題が出る様になってきたのでしょう。

と言う事で、一旦機能を無効化すると、表示できるようになりました。良かった。

何はともあれ、Classic EditorからGutenbergに移行した方もそうでない方も、使わなくなったプラグインは無効化するなり削除するのが一番。

皆様の情報共有に感謝。