問題描述
我在 WordPress 中遇到一個問題,PHP 正在死亡。我增加了記憶體,但 PHP 程式跳到 100%的 CPU 使用率,然後死亡,Apache 丟擲 500 錯誤。
我試圖讓 Apache 記錄一些東西,或者 PHP /MySQL 記錄一個錯誤,但是除了一般的 500 錯誤之外沒有其他記錄。
500 個問題在列表頁面上,例如:
/wp-admin/edit.php?post_type=artist
我們目前在 WordPress 中有超過 1200 個藝術家作品,如果我附加一個這樣的日期型別:
/wp-admin/edit.php?post_type=artist&orderby=date
然後列表載入得很好,甚至連!我已經坐過並觀看了 MySQL 查詢日誌,看來 WordPress 正在載入每一個帖子的後設資料 (全部是 1200 個),以便生成 10 個列表。對於只有一個查詢,它返回 92000 行。我使用高階自定義欄位和具有自己的框架的模板,因此每個帖子都有一個相當大的後設資料附加。我認為這是 PHP 處理的資料太多,我在這裡打了個天花板。明年可能會有 1200 個職位容易翻倍。
如何載入初始頁面載入附加日期排序或修復問題,載入所有的後設資料?
最佳解決方案
嘗試在您的 CPT 定義 (如果您的應用程式允許) 中更改層次結構:false 。
當 CPT 設定為層次結構時:真正的所有帖子將在管理控制面板中進行查詢,這可能會導致記憶體問題。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。