WordPress 文章內容包含程式碼,頁面就會錯誤
php 升級到 7.3 以後
在 wordpress 的文章內如果要放程式碼,單篇頁面就會顯示不了
於是 在 single.php 上方加上 ini_set(‘display_errors’, 1);
顯示一下錯誤訊息
結果就顯示如下錯誤訊息
Fatal error: Uncaught Error: Call to a member function id() on array in /var/www/it/wp-content/plugins/ crayon-syntax-highlighter/crayon_formatter.class.php:36
原來是 crayon-syntax-highlighter 這個外掛造成的錯誤
查詢了一下
解決辦法是修改外掛中這個檔案 crayon_langs.class.php
檔案位置 : /wordpress資料夾/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php
程式碼中的 340行
原本是這樣
return preg_replace('/[^\w-+#]/msi', '', $id);
要改成這樣,在 w 後面多加一個\
return preg_replace('/[^\w\-+#]/msi', '', $id);
存擋後再重新上傳就ok了
reference
- https://crunchify.com/fix-for-crayon-syntax-highlighter-wordpress-plugin-and-php-7-3-fatal-error
helpful!!!