Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, … given
WordPress 出現「count(): Argument #1 ($value) must be of type Countable|array」:原因與檢查方式
從 PHP 8.0 起,count() 收到陣列或 Countable 物件以外的值時,會拋出 TypeError。PHP 7 只會顯示警告,所以會對 null 或字串做 count() 的舊外掛與佈景主題,在 PHP 升級後會讓網站停擺。
你現在看到的是哪一種情況?
在 PHP 7 只會出警告的程式,現在以致命錯誤停止。
程式在那些頁面對空值或字串做 count()。
常見原因
為 PHP 7 寫的程式:外掛或佈景主題從未針對 PHP 8 更新。
選項或中繼資料是空的:應該是陣列的值是空的或是字串。
沒人維護的外掛或佈景主題:沒有任何版本相容主機現在使用的 PHP 版本。
參考資料
不想自己動手處理?WP119 全自動修復
白畫面與致命錯誤(外掛互撞、PHP 版本不相容)屬於自動處理的項目:系統在維修站的副本上開啟除錯模式,找出造成錯誤的外掛或佈景並停用(不刪除);記憶體不足造成的白畫面,則調高記憶體上限。修好後先複驗首頁與內頁,通過才寫回您的主機(WP 後台模式為交付修復完成包)。修復在維修站的網站副本上進行,複驗通過後才寫回。您網站資料庫裡的受保護資料表(會員、留言、訂單、表單填寫)只取結構。SSH/FTP 模式下,系統寫回前先在您的主機建立修復前備份,寫回後驗證沒通過時,以這份備份進行還原。修復未能完成,修復費全額退還。
- 初步評估:輸入網址
- 複製到維修站:在副本上作業
- 找出原因:逐項檢查
- 修復與複驗:首頁與內頁
- 寫回或交付:複驗通過才進行
這個錯誤在 PHP 升級後出現、網站顯示嚴重錯誤時,可以交給 WP119。
初步評估我的網站 →