在WordPress中使用wp-cron插件来设置定时任务
《:在WordPress中使用wp-cron插件来设置定时任务》要点: PHP 本身是无法创建定时任务的,但是 WordPress 自带了一个伪定时任务(Cron) API,非常的方便好用,包含 WordPress 本身的定时发布文章都依赖于这个 APIPHP教程 WP Cron 是什么? 是 WordPress 一套定时触发机制,可以循环支配任务执行. 如: 定时发布新文章,定期检测版本等功能都是通过这个来实现的.PHP教程 WP Cron 可以为我们实现什么? 我们可以循环更新和提交网站数据,节日定期向读者发送贺卡或者表单 ...PHP教程
因为这种原理,所以执行的时间可能会有一些偏差,但随着网站的浏览量攀升和网络爬虫的不断拜访,会让定时任务执行的时间越来越准确.PHP教程 WP-Cron 效率不高,但还是很方便好用的,整理了一下相关函数的使用办法如下.PHP教程 函数PHP教程 wp_get_schedulePHP教程 通过勾子别名,获取预定支配的勾子. 成功时返回循环周期类别 (hourly,twicedaily,daily,...),失败时返回 false.PHP教程 <?php wp_get_schedule( $hook,$args ) ?> $hook: 勾子别名 wp_get_schedulesPHP教程 WordPress 默认支持的循环周期类别有 hourly,twicedaily 和 daily. 通过该函数我们可以获取所有这些循环周期数组.PHP教程 <?php wp_get_schedules() ?> 在默认情况下,由以上办法获得的数组对象如下.PHP教程 array( 'hourly' => array( 'interval' => 3600,'display' => 'Once Hourly' ),'twicedaily' => array( 'interval' => 43200,'display' => 'Twice Daily' ),'daily' => array( 'interval' => 86400,'display' => 'Once Daily' ) ) 我们可以向 cron_schedules 过滤器添加更多的类型. 添加例子如下:PHP教程 add_filter('cron_schedules','cron_add_weekly'); function cron_add_weekly( $schedules ) { // Adds once weekly to the existing schedules. $schedules['weekly'] = array( 'interval' => 604800,// 1周 = 60秒 * 60分钟 * 24小时 * 7天 'display' => __('Once Weekly') ); return $schedules; } wp_next_scheduled 通过勾子别名,获取预定支配的下一个运行时刻,以整型返回. 常用于判断是否已经做了预定支配.PHP教程 <?php $timestamp = wp_next_scheduled( $hook,$args ); ?> $hook: 勾子别名 wp_schedule_eventPHP教程 按周期循环预定支配一个 WordPress 勾子,在预定时间触发勾子对应的函数.PHP教程 <?php wp_schedule_event($timestamp,$recurrence,$hook,$args); ?> $timestamp: 时间 (整型) wp_reschedule_eventPHP教程 按周期循环重新预定支配一个 WordPress 勾子. 但我发现这个方法不能正常使用,Codex 写得很草,如果哪位清楚知道怎么使用,请告知一下.PHP教程 wp_unschedule_eventPHP教程 通过预定时间和勾子别名,取消预定的支配.PHP教程 <?php wp_unschedule_event($timestamp,$args ); ?> wp_clear_scheduled_hookPHP教程 通过勾子别名,移除预定支配的勾子.PHP教程 <?php wp_clear_scheduled_hook( $hook ); ?> wp_schedule_single_eventPHP教程 预定支配一个 WordPress 勾子,在预定时间触发勾子对应的函数. 与 wp_schedule_event 不同的是该方法的只支配一次触发,不存在循环预定.PHP教程 <?php wp_schedule_single_event($timestamp,$hook); ?> $timestamp: 时间 (整型) 从上面的函数可用的参数来看,我们就可以整理出以下几个常用的参数:PHP教程 参数PHP教程 $timestampPHP教程 (整数)(必需)第一次执行此定时任务的时间,需要传一个时间戳,一般情况下都是当场执行,但不能用 time() 函数,而是用 WordPress 的时间函数 current_time().PHP教程 默认值:NonePHP教程 $recurrencePHP教程 (字符串)(必需)执行频率.每隔多长时间执行一次.可以填写 hourly (每小时执行一次)、twicedaily (每天执行两次,也就是 12 小时执行一次)和 daily (24 小时执行一次).PHP教程 默认值:NonePHP教程 $hookPHP教程 (字符串)(必需)执行的钩子.在执行定时任务的时候会调用这个钩子,往这个钩子挂在函数即可实现定时执行函数. $argsPHP教程 (数组)(可选)传递的参数,会被传递到挂载到定时钩子的函数里的参数.PHP教程 默认值:NonePHP教程 返回值PHP教程 (布尔 | null)如果添加成功则返回 null,不成功则返回 FalsePHP教程 例子PHP教程 if( !wp_next_scheduled( 'test' ) ) wp_schedule_event( current_time( 'timestamp' ),'twicedaily','test' ); 首先使用 wp_next_scheduled() 函数判断是否已经创建,如果没创建则创建一个定时任务.PHP教程 把必要执行的代码挂载到 test 钩子上就行了.PHP教程 编程之家培训学院每天发布《:在WordPress中使用wp-cron插件来设置定时任务》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |