如何调试WordPress Cron的问题?我认为这将在用户访问您的网站时触发,但不会显示任何错误,因为作业是“异步”运行的。那么如何调试错误?

我使用wp schedule event

评论

阅读本文档:developer.wordpress.org/plugins/cron/…

使用Advanced Cron Manager插件

#1 楼

您可以通过调用以下命令来手动运行WP cron:http://example.com/wp-cron.php?doing_wp_cron

如果您不想在调试时运行自动cron,请将其添加到您的/wp-config.php文件中:

define('DISABLE_WP_CRON', true);


如果您在开发环境中并想要输出调试信息,则手动调用该命令将显示调试输出。内置的error_log函数可将消息字符串记录到错误日志中进行调试。如Rarst所述,您需要将其与WP_DEBUG设置结合使用。

评论


感谢您对?doing_cron参数的提示。

–罗马
2011年3月31日19:11

我认为应该是?doing_wp_cron而不是?doing_cron。

– liviucmg
2015年4月23日在10:14



@liviucmg是的,您是对的。我做了调整。

–西蒙东
15年8月4日在5:14

是否需要doing_wp_cron参数?请参阅EasyCron的手动设置教程。

– AlecRust
16年3月3日,11:25

@gabrielk是否需要?doing_cron参数?这是什么意思?

–绝地
17年2月23日在9:31

#2 楼

您可以使用插件Cron-View。在那里,您可以查看您的工作是否a)已注册,b)下一个到期时间是什么。在本地系统上更频繁地测试您的方法。使用“ 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');


#3 楼

您可以通过创建动作并在其中执行Cron动作来进行手动调试。这样: />
但是手动进行毫无意义。您可以使用Advanced Cron Manager PRO插件为您执行此操作,还可以保存日志和其他统计信息。

#4 楼

您可以(可能无论如何应该是cron都可以)配置PHP错误日志以捕获所有错误。