問題描述

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