基于数组列表配置WP-Cron定时调用enable_update()函数求助
WP-Cron 定时任务实现方案
首先修正时间数组的语法错误,PHP 数组内的时间需以字符串形式定义:
$times = array('10:00', '15:00', '21:00');
以下是完整的实现步骤:
1. 注册触发钩子
先为你的 enable_update() 函数绑定一个 WP-Cron 钩子:
add_action('enable_update_trigger', 'enable_update');
2. 批量创建每日定时事件
遍历时间数组,为每个时间点创建每日重复执行的定时任务:
function setup_daily_update_schedules() { global $times; foreach ($times as $time) { // 拆分时分 list($hour, $minute) = explode(':', $time); // 转换为今日该时间的时间戳 $event_time = strtotime("$hour:$minute"); // 避免重复注册任务 if (!wp_next_scheduled('enable_update_trigger', array($time))) { wp_schedule_event($event_time, 'daily', 'enable_update_trigger', array($time)); } } } // 在网站初始化时执行注册逻辑 add_action('init', 'setup_daily_update_schedules');
3. 关键注意事项
- 代码可放在主题的
functions.php文件或自定义插件的主文件中 - WP-Cron 依赖网站访问触发,若网站访问量极低,建议配置服务器级 Cron 定时请求
wp-cron.php文件,确保任务准时执行 - 如需取消已注册的任务,可使用以下代码:
function clear_update_schedules() { global $times; foreach ($times as $time) { list($hour, $minute) = explode(':', $time); $event_time = strtotime("$hour:$minute"); wp_unschedule_event($event_time, 'enable_update_trigger', array($time)); } } // 执行此函数即可清除任务,可临时添加后访问网站一次再删除 // add_action('init', 'clear_update_schedules');
内容的提问来源于stack exchange,提问作者Zagaz
相关产品推荐
相关产品推荐

