在 《WordPress 添加一个定时任务 (Cron) 》一文中,我简单的介绍了 WordPress 定时任务的用法。
很多人都说定时任务有一个非常讨厌的设计,那就是只能设置三种任务执行频率,分别是 hourly(每小时执行一次) 、 twicedaily(每天执行两次,也就是 12 小时执行一次) 和 daily(24 小时执行一次),如果要其它的执行频率就没有办法。
那 WordPress 就真不支持自定义定时任务的执行频率吗?答案是否定的,WordPress 支持自定义定时任务的执行频率,但是比较麻烦,需要使用钩子修改。
下边的代码我添加了一个新的任务执行频率,叫做 weekly,执行频率为每周执行一次:
functionBing_add_schedules($schedules){ $schedules['weekly']=array( 'interval'=>604800,//以秒为单位的执行频率 'display'=>__('每周一次')//显示在前端的名字 ); return$schedules; } add_filter('cron_schedules','Bing_add_schedules'); |
之后这个创建的执行频率就可以在 wp_schedule_event() 函数上使用了:
1 |
wp_schedule_event(current_time('timestamp'),'weekly','test'); |
总结:用 cron_schedules 钩子可以添加更多的执行频率,实现自定义定时任务执行频率的目的。