WordPressのテーマを変更したら、トップページの上部に見たこともないような文字列が並び心臓がドキドキするほど慌てました。「上部に」と判明したのは後のことで、最初は何が起きているのかさっぱりわかりませんでした。
とりあえずスクロールしてみるとはるか下の方にトップページのコンテンツが存在し、少し安心したものの、なんとしてでもこの不具合を解決しなくてはなりません。
上部に現れた文字列はコレ。
コピペするとつぎの文言となります。
Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /●●●●●●●●●●●●●●●●●●●●●●●●●●/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 340
なお画像中のぼかしおよび文言中の「●」はサーバーにアップしてあるデータのフォルダーの階層。念のため伏せてあります。
この不具合が発生した環境はつぎのとおりです。
WordPressバージョン: 5.7
サーバーのPHPバージョン: 7.4.13(XSERVER推奨)
変更後のテーマCocoonバージョン: 2.2.8.5
問題はプラグインにあった
さて動悸がやや収まり冷静になって先の文字列に目をとおしてみると解決のための重要なヒントがありました。
ポイントはつぎの部分。
[1]「/plugins」と[2]「/crayon-syntax-highlighter」に注目です。
たしかに「crayon-syntax-highlighter」というプラグインをインストールしていました。そのあとの文言を読むと、どうやらそのphpファイルに問題があるようです。
さらに冒頭の「Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4」を翻訳してみると「警告: preg_replace(): コンパイルに失敗しました:オフセット4の文字クラスの範囲が無効です」とのことです。何を言ってるかよくわからなくはあるものの「失敗」したと「警告」されているのは事実です。
プラグイン「crayon-syntax-highlighter(バージョン2.8.4)」は投稿記事中でコードを記述する際、わかりやすく表記するために使用しているものです。まあ、コンテンツに不可欠化かと言えば、そうでもありません。
不具合発生の詳しい仕組みは不明ですが、とりあえずここは張本人であるプラグインをいったん無効化することにしました。
それからトップページを表示してみると無事解決していました。
ネットで検索してみるとphpファイルの中身を書き換えることで根本的な解決ができるようです。しかしその手間を考えるといったんの「無効化」がかんたんで有効と思いました。
同様の問題に直面されている方はまず表示された文言をよく読んでみることをおすすめします。きっとそこにヒントがあるはずです。