Wordpress Cron 作业自定义挂钩不起作用

时间:2021-05-11 17:45:05

标签: wordpress cron

我正在尝试使用自定义钩子运行一个简单的 cron 作业,但它没有运行。它被安排(通过 wp cron 插件查看)但没有运行。例如,如果我将挂钩更改为 wp_loaded,它运行良好。这是在主题functions.php文件中:

// Schedule event.
if (!wp_next_scheduled ('my_hourly_event')) {
  wp_schedule_event(time(), 'hourly', 'my_hourly_event', array(), true);
}

add_action('my_hourly_event', 'do_this_hourly', 10); // Works with action being 'wp_loaded'

function do_this_hourly() {
  error_log("test"); // Not working.
  $log = __DIR__ . '/error_log.txt';
  file_put_contents($log, "Response: \n", FILE_APPEND); // Works with making action 'wp_loaded'
}

我还有一些其他网站使用带有自定义钩子的类似代码,它们都没有问题。我在这里做错了什么? wordpress 更新是否使用自定义钩子破坏了 cron 作业?我在 wordpress 版本 5.7.1

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试使用 init 钩子。

function schedule_my_cron(){
    wp_schedule_event(time(), 'hourly', 'my_hourly_event', array(), true);
}

if(!wp_next_scheduled('my_hourly_event',$args)){
    add_action('init', 'schedule_my_cron');
}

add_action('my_hourly_event', 'do_this_hourly', 10); // Works with action being 'wp_loaded'

function do_this_hourly() {
    error_log("test"); // Not working.
    $log = __DIR__ . '/error_log.txt';
    file_put_contents($log, "Response: \n", FILE_APPEND); // Works with making action 'wp_loaded'
}