問題描述

如何除錯 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。