如何调试WordPress Cron的问题?我认为当用户访问您的站点时,它会触发,但不会向他们显示任何错误,因为作业是“异步”运行的。那么如何调试错误呢?
如何调试WordPress“Cron”wp_Schedule_Event
您可以通过调用以下命令手动运行WP cron:http://example.com/wp-cron.php?doing_wp_cron
如果不想在调试时运行自动cron,请将其添加到/wp-config.php
文件:
define(\'DISABLE_WP_CRON\', true);
如果您在开发环境中,并且想要输出调试信息,那么像这样手动调用它将显示您的调试输出。或者,您可以使用PHP的内置error_log 函数将消息字符串记录到错误日志以进行调试。您需要将此与WP_DEBUG settings, 如Rarst所述。
您可以通过创建一个操作并在其中执行Cron操作来手动调试。像这样:
add_action( \'init\', function() {
if ( ! isset( $_GET[\'the_cron_test\'] ) ) {
return;
}
error_reporting( 1 );
do_action( \'this_is_cron_event_hook\' );
die();
} );
通过访问您的网站地址:http://example.com?the_cron_test
这将显示cron任务的所有错误。
但手动操作毫无意义。你可以使用Advanced Cron Manager PRO 插件,它可以为您执行此操作,还可以保存日志和其他统计信息。
你可以使用插件Cron-View. 在那里,你可以看到你的工作是否a)已注册,b)下一个到期时间是什么。
此外,您可以为事件添加较低的时间表计时器(例如,每2分钟一次),并在本地系统上更频繁地测试您的方法。使用“cron\\u 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 捕获所有错误。