PHP7.3で起きるWPプラグインCrayon Syntax Highlighterのエラーを直す方法
PHPを7.3にバージョンアップした際、WordPressのプラグイン「Crayon Syntax Highlighter」を使っているページがエラーで表示されない問題が発生しました。なんとこのプラグイン、2013年に開発が終了となっていました!そりゃPHPのバージョンアップに耐えられるわけないよね。。
ということで、Crayon Syntax Highlighterプラグインのソースを直にいじって直すことにしました。たった1行書き換えるだけなので楽勝です。
crayon_langs.class.phpを修正する
Crayon Syntax Highlighterプラグインフォルダの中に、crayon_langs.class.phpというファイルがあります。
こちらの340行目にある、正規表現(preg_replace)のところでエラーが発生しています。
function clean_id($id) { $id = CrayonUtil::space_to_hyphen( strtolower(trim($id)) ); // 元の1行をコメントアウト // return preg_replace('/[^\w-+#]/msi', '', $id); // 正しい正規表現を追加 return preg_replace('/[^\w+#-]/msi', '', $id); } // 正規表現の違い // preg_replace('/[^\w-+#]/msi', '', $id); // preg_replace('/[^\w+#-]/msi', '', $id);
この一行を上記の新しい正規表現に差し替えれば完了です。
ただ、根本的な改善にはならないので、今後PHPのバージョンアップでさらにエラー等が発生していくことは予想できるので、新しいプラグインに乗り換えるなどの施策も検討する必要がありそうです。