如何修復 WordPress 中的“解析錯誤:語法錯誤,意外”

已發表: 2021-07-16

如果您曾經更新過插件或將代碼粘貼到您的 WordPress 網站中,那麼您可能會在 WordPress 消息中看到解析錯誤語法錯誤意外結束的問題。 這是一個常見的錯誤,因為它只需要一個字符就可以導致它。 在本文中,我們將探討導致此錯誤的原因並了解如何修復它。

解析錯誤:語法錯誤,WordPress 中的意外結束是什麼意思?

WordPress 中的解析錯誤語法錯誤意外結束可能是最簡單的錯誤,但仍然會導致大問題。

錯誤有兩部分:

語法錯誤– 此錯誤是由 PHP 結構中的錯誤引起的,因為缺少或添加了不應存在的字符。

意外– 這意味著代碼缺少一個字符並且 PHP 到達文件末尾而沒有找到它要查找的內容。 該錯誤將在末尾包含解釋它所看到的意外情況的信息。

如果您在 WordPress 中看到 Parse Error: Syntax Error, Unexpected end,則表示 WordPress 檢測到代碼中缺少或添加了某些內容。 它可以是逗號、分號、右括號或太多括號等簡單的東西。

缺少的語法可能在您編寫或粘貼到網站的代碼中,也可能在您安裝或更新的主題或插件中。

幸運的是,找到並修復它並不難。 但是,您需要了解代碼的工作原理以及如何對其進行編輯。

如何解決解析錯誤:WordPress 中的語法錯誤意外結束

如何解決解析錯誤

WordPress 中的實際解析錯誤語法錯誤意外結束將有不同的結尾,具體取決於導致錯誤的原因。

例子包括:

  • 1) 語法錯誤,文件意外結束
  • 2) 語法錯誤,意外令牌
  • 3) 語法錯誤,意外變量
  • 4) 語法錯誤,意外的標識符

錯誤消息通常會標識它不喜歡的特定標記、變量、標識符等。 隨著我們的進行,我們會看到一些這樣的例子。

在 WordPress 中測試解析錯誤語法錯誤意外結束

WordPress 在處理代碼的方式上做了很多改進。 現在,如果它運行了以前版本的代碼,而不是運行不良代碼並殺死您的網站,它會在向訪問者顯示網站時嘗試使用該代碼。

這可以防止您的網站向訪問者顯示錯誤並防止您被鎖定。 您的網站仍然有可能關閉並將您鎖定,但現在更難了。

此外,代碼編輯器現在顯示標記,因此可以輕鬆識別變量和其他代碼元素。 這使得在 WordPress 中的插件和主題代碼編輯器中測試代碼變得更加容易。

不幸的是,WordPress 並不總是給你一個明確的信息。 有時沒有消息,內容丟失,或者只是不顯示網站。 所有這些都可以修復,但它們可能需要更多的故障排除。

讓我們看幾個例子。 我們將從簡單的事情開始。

編輯插件代碼

編輯插件代碼

首先,從你上次做的事情開始。 在本例中,我編輯了插件文件中的代碼。 該文件恢復到最後一個已知的良好代碼,所以我的更改不起作用。 看看錯誤。 它會告訴您是什麼導致了錯誤代碼以及出現錯誤的代碼行。

在此示例中,WordPress 在期望看到分號時看到了意外的括號。

這個很簡單。 首先,看看它上面的線。 我們看到單詞break結束了case 4 。 我們很幸運,因為我們有其他案例可以比較。 在它上面的是case 3 ,它也以break結尾,但是這個有一個結束的分號。

編輯插件代碼

接下來,編輯導致錯誤的代碼。

編輯插件代碼

這是同一插件文件中的另一個示例。 這一行顯示了第 488 行的錯誤。但是,那行代碼是正確的。 不過,它給了我一個線索。 它將其識別為意外變量。

編輯插件代碼

如果我們查看 488 上面的代碼,我們會發現它缺少一個右括號。 這會導致 WordPress 錯誤地看到下一行。

編輯插件代碼

只需添加右括號並更新文件。 該代碼現在可以正常工作。

這些問題很簡單,但是大多數時候你會在 WordPress 中看到一個 parse error 語法錯誤意外結束,它和這些例子完全一樣。

在找不到錯誤時修復解析錯誤

如果沒有為您顯示解析錯誤或者您不確定它來自哪裡,有兩種方法可以找到解析錯誤。 下面來看看這兩種方法。

調試模式

第一步是啟用 WordPress 錯誤日誌。 使用 FTP 或 cPanel 轉到您的 wp-config 文件。 搜索如下所示的一行代碼:

define( 'WP_DEBUG', false );

如果您有此代碼,請將 false 更改為 true。

如果您沒有這行代碼,請查找以下內容的行:

“停止編輯! 祝博客愉快。” 並粘貼此代碼:

define( 'WP_DEBUG', true );

加載網站。 這將顯示錯誤,您現在可以開始進行故障排除。

調試插件

查詢監視器

Query Monitor 是最流行的調試插件之一。 它提供了您可以從前端和後端從頂部菜單欄和作為覆蓋層訪問的工具。

查詢監視器

這將啟用多個調試工具,包括錯誤日誌,您可以在其中找到所需的信息。

如果您被 WordPress 鎖定,請修復解析錯誤

如果您被 WordPress 鎖定,請修復解析錯誤

如果您被鎖定在管理儀表板之外,則需要以其他方式進行更改。 您需要從包含錯誤的服務器下載文件並在代碼編輯器中打開它以進行編輯。

就我而言,我正在為 221 主題更改 functions.php 文件。 我在語法上犯了一個錯誤,我的網站宕機了。 它所顯示的只是這個無濟於事的錯誤。

如果您被 WordPress 鎖定,請修復解析錯誤

最好的選擇是使用 FTP 或您主機的 cPanel。 我將在此示例中使用 cPanel,但過程是相同的。 首先,在 cPanel 中打開文件管理器。

如果您被 WordPress 鎖定,請修復解析錯誤

接下來,打開您正在處理的網站的文件夾。 如果它是主站點,您可能會看到一個地球圖標。 否則,打開帶有網站名稱的文件夾。

如果您被 WordPress 鎖定,請修復解析錯誤

導航到 wp-content 文件夾。

如果您被 WordPress 鎖定,請修復解析錯誤

導航到您要編輯的主題或插件所在的文件夾。 在這種情況下,我正在編輯一個主題。

如果您被鎖定在 WordPress 之外,請修復解析錯誤

選擇主題或插件的文件夾。 我正在為 221 主題選擇文件夾。

如果您被 WordPress 鎖定,請修復解析錯誤

接下來,轉到出現問題時您正在編輯的文件。 我正在編輯functions.php 文件。 下載文件以脫機工作或編輯文件。 我建議在進行更改之前下載備份。

如果您被 WordPress 鎖定,請修復解析錯誤

您的代碼編輯器可能會提供有關錯誤的信息。 在我的例子中,它表明它在第 29 行需要一個括號。實際上,它在第 17 行缺少一個括號,這導致編輯器認為它需要一個括號。

如果您被 WordPress 鎖定,請修復解析錯誤

添加括號可消除錯誤。 如果我使用在線編輯器,我現在可以上傳我的新文件來替換當前文件或保存它。

如果您被 WordPress 鎖定,請修復解析錯誤

我的網站現在可以正常工作了。

恢復以前的文件

恢復以前的文件

如果您不確定代碼中的更改內容,並且想要恢復您知道有效的先前文件,請轉到 FTP 或 cPanel 中的文件。

有時 WordPress 不會告訴您問題的來源。 在這種情況下,您可以一次重命名文件夾以查看問題是否消失。 從你的插件開始。

如果您確實知道問題出在哪裡,則可以上傳替換文件。 對於 WordPress 存儲庫中的插件或主題,您可以刪除該文件夾並重新安裝。

如果您願意,可以從 WordPress 存儲庫(或從哪裡獲得它)下載主題或插件,解壓縮文件,然後只替換您需要的文件。 它的工作原理與我們將在下一節中替換 WordPress 的方式類似。

上傳 WordPress 的干淨副本

上傳 WordPress 的干淨副本

如果問題出在 WordPress 核心,您可以上傳新版本的 WordPress,而不會刪除您的文件。 下載 WordPress 的新副本並解壓縮。

上傳 WordPress 的干淨副本

接下來,刪除 wp-content 文件夾和名為 wp-config-sample.php 的文件。

上傳 WordPress 的干淨副本

接下來,將解壓縮文件夾中的 WordPress 文件上傳到您的 WordPress 根文件夾中。 這將覆蓋除您刪除的兩個文件之外的所有文件。 您的網站現在應該可以工作了。

結束對 WordPress 中解析錯誤語法錯誤意外結束的思考

WordPress 中的解析錯誤語法錯誤意外結束是任何處理代碼的人的常見錯誤。 修復它並不難,但有時需要時間來追踪它。 步驟很簡單:

  • 如果您已添加代碼,請從那裡開始。
  • 如果您安裝了插件或主題,請將其停用。
  • 找不到問題時,更換可疑文件。
  • 當所有其他方法都失敗時,恢復備份。

遵循一些故障排除步驟將有助於讓您的網站盡快​​順利運行。

我們希望聽到您的意見。 您是否在 WordPress 中遇到過解析錯誤語法錯誤意外結束? 請在下面的評論中告訴我們您是如何修復它的。

精選圖片來自 alexdndz/shutterstock.com