問題描述
如何除錯 WordPress Cron 的問題?我認為當使用者進入您的網站時會觸發,但任何錯誤都不會顯示給他們,因為作業執行”asynchronously” 。那麼我怎麼可能除錯錯誤?
我使用 wp schedule event
最佳解決方案
您可以透過呼叫:http://example.com/wp-cron.php?doing_wp_cron 手動執行 WP cron
如果您不想在除錯時執行自動 cron,請將其新增到/wp-config.php 檔案中:
define('DISABLE_WP_CRON', true);
如果您處於開發環境並希望輸出除錯資訊,則手動呼叫它將顯示您的除錯輸出。
或者,您可以使用 PHP 的 built-in error_log 函式將訊息字串記錄到錯誤日誌中進行除錯。如 Rarst 所述,您需要將其與 WP_DEBUG settings 結合使用。
次佳解決方案
你可以使用外掛 Cron-View 。在那裡你可以看到你的工作是否是 a) 註冊和 b) 下一個到期的時間。
此外,您可以為您的活動新增較低的 schedule-timer(例如每 2 分鐘),並在本地系統上更頻繁地測試您的方法。使用’cron_schedules’ 過濾器掛鉤註冊新的計劃時間。例如:
function my_additional_schedules($schedules) {
// interval in seconds
$schedules['every2min'] = array('interval' => 2*60, 'display' => 'Every two minutes');
return $schedules;
}
add_filter('cron_schedules', 'my_additional_schedules');
第三種解決方案
你可以 (並且在任何情況下都應該是 cron 或者不是)configure PHP error log 來捕獲所有的錯誤。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。