如何修復無法修改標頭資訊錯誤

錯誤型別:
WP內部錯誤
錯誤名稱:
无法修改标头信息
英文名稱:
Cannot modify header information
錯誤描述:
当您站点的.php文件之一无法执行时,您将遇到此错误。

如何修復無法修改標題資訊錯誤

大多數WordPress錯誤訊息讓您瞭解是什麼導致了您的網站出現問題。“警告:無法修改標頭資訊 – 標頭已經傳送( Warning: cannot modify header information – headers already sent by”)”錯誤也不例外。如果PHP檔案由於程式碼問題而無法執行,您將遇到此訊息。

“無法修改標頭資訊”錯誤有多種潛在原因。幸運的是,訊息本身會告訴您是哪個檔案導致了問題。它甚至指向包含問題的程式碼行。

在本文中,我們將討論此錯誤及其原因。然後,我們將介紹兩種解決問題的方法。

  1. 什麼原因導致“無法修改標頭資訊 – 標頭已傳送”錯誤
  2. 如何解決“警告:無法修改標頭資訊 – 標頭已傳送”錯誤(2種方法)

什麼原因導致“無法修改標頭資訊 – 標頭已傳送”錯誤

正如我們之前提到的,當您站點的.php檔案之一無法執行時,您將遇到此錯誤。WordPress的依賴於.php檔案,如WP-config.php檔案functions.php中,其核心功能。

如果您的網站需要載入的.php檔案之一存在問題,您將看到如下所示的錯誤訊息:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-config.php:#) in /home/public_html/wp-includes/file-example.php on line 33
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-config.php:#) in /home/public_html/wp-includes/file-example.php on line 33
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-config.php:#) in /home/public_html/wp-includes/file-example.php on line 33

幸運的是,“無法修改標頭資訊”錯誤提供了大量資訊,使故障排除相對簡單。該訊息將指向兩個檔案 – 第一個包含問題,這會阻止第二個檔案的執行。

在錯誤訊息的末尾,您會看到一個顯示“第XX行”的部分。它顯示了導致問題的特定程式碼的位置。

通常,PHP程式碼中的問題很容易修復。可能觸發錯誤訊息的一些常見原因包括:

  • <?php程式碼段之前或?>結束標記之後的空格
  • 一個HTML塊之前的PHP標頭函式
  • printecho在PHP標頭函式之前新增的語句
  • 外掛程式碼的問題

修復這些型別的錯誤要求您至少對修改PHP程式碼有一定的熟悉度。您不需要自己新增任何程式碼。

不過,您可能需要一些額外的幫助來確定問題。如果問題與PHP標頭函式之前的空格或語句無關,則尤其如此。

如何解決“警告:無法修改標頭資訊 – 標頭已傳送”錯誤(2種方法)

有兩種方法可以解決“無法修改標頭資訊 – 標頭已經傳送”錯誤。第一種方法不需要您退出WordPress儀表盤。

但是,如果您無法訪問儀表盤或使用WordPress,則第二種策略使用FTP/SFTP。

讓我們從第一種故障排除方法開始。

1.使用外掛/主題編輯器修復錯誤或更換外掛

當您遇到“無法修改標頭資訊 – 標頭已經傳送”錯誤時,您需要做的第一件事是開啟導致問題的檔案。然後,找到訊息指示的行。

例如,如果您看到如下錯誤,則意味著您需要檢視主題的functions.php檔案:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-content/themes/twentytwentyone/functions.php:#) in /home/public_html/wp-includes/file-example.php on line 1
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-content/themes/twentytwentyone/functions.php:#) in /home/public_html/wp-includes/file-example.php on line 1
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-content/themes/twentytwentyone/functions.php:#) in /home/public_html/wp-includes/file-example.php on line 1

在這種情況下,您可以使用WordPress主題編輯器找到問題的根源 。要訪問它,請轉到外觀>主題編輯器

進入後,使用右側的選單選擇您需要訪問的檔案。

主題函式檔案 (functions.php)

主題函式檔案 (functions.php)

如果仔細觀察,您會注意到<?php標籤前有幾個空格。錯誤訊息本身指向第一行。因此,這告訴您空格是問題的根源。

在此示例中,您所要做的就是刪除空格並單擊Update File。現在嘗試重新載入您的網站,錯誤應該消失了。

您可以使用WordPress外掛編輯器(外掛 >外掛編輯器)應用相同的過程。如果錯誤訊息指向錯誤的外掛檔案,則此方法適用。

或者,您可能會遇到指示WordPress外掛目錄中的檔案之一的錯誤。在這種情況下,您可以刪除並重新安裝該外掛。在大多數情況下,這將為您解決問題。

但是,請記住,您可能會丟失該外掛的配置,具體取決於您使用的工具。因此,您可能需要再次設定載入項。

2. 通過FTP/SFTP編輯問題檔案

在某些情況下,“無法修改標頭資訊 – 標頭已經傳送”錯誤的來源不會存在於您可以使用WordPress主題或外掛編輯器訪問的檔案中。或者,您可能正在使用非WordPress網站。

在這些情況下,最好的選擇是使用FTP/SFTP訪問問題檔案。為此,您需要使用FTP或SFTP客戶端, 例如FileZilla

您還需要訪問您網站的FTP/SFTP憑據。在大多數情況下,您應該能夠在您的主機面板中找到它們。

獲得憑據後,使用FTP或SFTP客戶端連線到您的網站。您需要找到站點的根資料夾。通常,它的名稱應該是root、public_htmlpublic或您自己站點的名稱。

這是一個快速瀏覽WordPress根資料夾內部的樣子。

WordPress根資料夾

WordPress根資料夾

繼續並找到“無法修改標頭資訊 – 標頭已經傳送”錯誤指示的檔案。例如,如果問題是public/wp-config.php,請右鍵單擊檔案並選擇檢視/編輯選項。

編輯wp.config檔案

編輯wp.config檔案

該選項將使用您的預設文字編輯器開啟所選檔案。開啟文件後,通過導航到錯誤訊息指向的行來定位問題。

查詢包含錯誤訊息的行

查詢包含錯誤訊息的行

 

如果您無法發現錯誤,您可能需要諮詢有處理 PHP 檔案經驗的人。但是,假設您正在處理空白問題或PHP標頭之前的語句。在這種情況下,您應該能夠自己解決問題。

完成後,儲存對檔案的更改並關閉FTP/SFTP客戶端。嘗試重新訪問您的網站,錯誤應該消失了。

小結

“警告:無法修改標頭資訊 – 標頭已經傳送”錯誤可能令人生畏,因為它輸出了一條長訊息。但是,該詳細的錯誤訊息使此錯誤的故障排除相對簡單。與其他問題不同,這個問題足夠禮貌,可以告訴您是哪個檔案引起的,以及您需要檢視哪一行程式碼。

根據導致錯誤的檔案,您可以通過兩種方式對其進行故障排除:

  1. 使用外掛/主題編輯器修復錯誤或更換外掛。
  2. 通過FTP/SFTP客戶端編輯問題檔案。

查詢此錯誤的來源很簡單。但是,如果您不熟悉PHP,修復它可能是一個問題。

評論留言