问题描述

如何调试 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。