这是我在function.php文件中定义的wp-cron,但是在错误日志中没有任何结果,事件在cron列表中,但是如果启动它,什么都不会发生。我在define('WP_DEBUG', true);的所有级别上都启用了php.ini和错误日志
有人知道我在哪里做错了吗?
function cron_daily_whatever() {
if (!wp_next_scheduled('check_daily_event')) {
wp_schedule_event(time(),'daily','check_daily_event');
}
}
function my_do_this_daily() {
error_log('check');
}
add_action('wp','cron_daily_whatever');
add_action('check_daily_event','my_do_this_daily');解决方案--我使用了这个片段
file_put_contents(WP_CONTENT_DIR . '/my-debug.txt', "Response: ".$res."\n", FILE_APPEND);来调试它。现在起作用了。
发布于 2016-12-31 13:32:02
在WP内容中默认的WP_DEBUG日志中,您也应该定义('WP_DEBUG_ log ',TRUE)。然后,您需要清除计划好的事件(并再次设置它),以便今天测试它是否已经运行过一次。有关这一点,请参见hook。
发布于 2016-12-31 21:38:24
似乎您正在/将cron设置在页面级别/主题级别?
如果您是在插件级别设置。
add_action( 'my_hourly_event', 'update_db_hourly' );
public static function activate() {
wp_schedule_event( time(), 'hourly', 'my_hourly_event' );
}
public static function deactivate() {
wp_clear_scheduled_hook('my_hourly_event');
}
public function update_db_hourly() {
// 1. Check for a new file
// 2. If it exists, read it, upload it, delete it
// 3. Otherwise, do nothing
}参考文献:https://tommcfarlin.com/wordpress-cron-jobs/
注意:如果error_log不工作,可能是由于某些WP_DEBUG_DISPLAY=false标志设置不正确。最好使用以下代码片段记录自定义日志记录。
file_put_contents(WP_CONTENT_DIR . '/my-debug.txt', "Response **".$res."**", FILE_APPEND);此文件将在wp内容文件夹下创建。
https://stackoverflow.com/questions/41408616
复制相似问题