我正在尝试使用自定义钩子运行一个简单的 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
答案 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'
}