这是我在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);
调试它。它现在有效。
答案 0 :(得分:1)
通过wp-content中的默认WP_DEBUG日志,您应该定义('WP_DEBUG_LOG',TRUE);同样。然后你需要清除你的预定事件(并再次设置),以便今天测试它是否已经运行过一次。请参阅https://codex.wordpress.org/Function_Reference/wp_clear_scheduled_hook。
答案 1 :(得分:1)
您似乎在页面级别/主题级别设置/设置了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-content文件夹下创建。