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

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

About: Kaito


One thought on “WordPress 文章內容包含程式碼,頁面就會錯誤”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料