修復WordPress plugin 外掛Crayon Syntax Highlighter遇到PHP 7.3以上更新發生錯誤

修復Crayon Syntax Highlighter在升級PHP 7.3以上後發生Fatal error

前言

Crayon Syntax Highlighter是個用於Wordpress文章中替程式碼上色以便讀者檢視並複製的外掛,用於分享程式碼還蠻好用,像是在WooCommerce加入客製化使用者欄位這篇文章中很常使用,不過原作者大約在2015年就停止維護,雖然一直都可以使用,不過一旦遇到PHP升級將Crayon還在使用的函式退休 (deprecated)就沒法運作了,這個問題就發生在升級PHP版本到7.3以上,錯誤訊息會寫著

要解決需要改外掛的幾個地方,或者直接下載Crunchify維護的版本

如果不相信別人維護的版本,可以參考Crunchify的文章GitHub repository紀錄來修改,或者直接下載他們維護的版本,記得找最新的release。

以下最前面-代表要刪除該行,最前面的+代表新增該行

修改crayon_langs.class.php

340行正規表示式Regexp裡面 “-” 之前加上反斜線,可參考這個commit

修改crayon_formatter.class.php

這個修改不確定有沒有必要,不過至少看起來方便維護一個變數,請參考這個位置

修改crayon_settings.class.php

請參考這個commit修改

 

最後感謝Crunchify維護Crayon,維護程式真的很辛苦啊~

參考資料 Reference

https://wordpress.org/support/topic/php-7-3-fatal-error-crash-make-sure-to-get-fix/

https://crunchify.com/fix-for-crayon-syntax-highlighter-wordpress-plugin-and-php-7-3-fatal-error/

https://github.com/Crunchify/crayon-syntax-highlighter/releases