初步評估

Fatal error: Cannot redeclare …() (previously declared in …)

WordPress 出現「Cannot redeclare …() (previously declared in …)」:原因與檢查方式

更新 2026-11-01
# 錯誤紀錄中常見的內容
PHP Fatal error:  Cannot redeclare …() (previously declared in /wp-content/plugins/…)

同一個函式名稱被宣告兩次時,PHP 會以這個錯誤停止執行。在 WordPress 裡,通常是兩個外掛、或外掛與佈景主題各自帶了同名的函式,或同一個檔案被載入兩次。PHP 8.4 的寫法是「Cannot redeclare function …()」。

你現在看到的是哪一種情況?

新外掛宣告的函式,另一個外掛或佈景主題已經宣告過。錯誤訊息會列出兩個檔案。

片段定義的函式已經存在,常見原因是同一段程式貼了兩次。

外掛資料夾被複製或改名,兩份都是啟用狀態。

常見原因

兩個外掛有同名的輔助函式:兩個外掛宣告前都沒有用 function_exists() 檢查。
重複的程式片段:同一個函式被加進 functions.php 或片段外掛兩次。
內附的程式庫被載入兩次:兩個外掛帶了同一個程式庫,卻沒有防重複載入的檢查。
外掛有兩份:同一個外掛的舊版與新版都在啟用狀態。

參考資料

  1. User-defined functions (PHP.net)
  2. Debugging in WordPress (Advanced Administration Handbook)

不想自己動手處理?WP119 全自動修復

白畫面與致命錯誤(外掛互撞、PHP 版本不相容)屬於自動處理的項目:系統在維修站的副本上開啟除錯模式,找出造成錯誤的外掛或佈景並停用(不刪除);記憶體不足造成的白畫面,則調高記憶體上限。修好後先複驗首頁與內頁,通過才寫回您的主機(WP 後台模式為交付修復完成包)。修復在維修站的網站副本上進行,複驗通過後才寫回。您網站資料庫裡的受保護資料表(會員、留言、訂單、表單填寫)只取結構。SSH/FTP 模式下,系統寫回前先在您的主機建立修復前備份,寫回後驗證沒通過時,以這份備份進行還原。修復未能完成,修復費全額退還。

  1. 初步評估:輸入網址
  2. 複製到維修站:在副本上作業
  3. 找出原因:逐項檢查
  4. 修復與複驗:首頁與內頁
  5. 寫回或交付:複驗通過才進行

這個錯誤讓網站或管理後台打不開時,可以交給 WP119。

初步評估我的網站 →
初步評估 →