PHP 自身是无奈创立定时义务的,然而 WordPress 自带了一个伪定时义务(Cron) API,十分的不便好用,包括 WordPress 自身的定时公布文章都依赖于这个 API
WP Cron 是什么? 是 WordPress 一套定时触发机制, 能够循环布置义务执行. 如: 定时公布新文章, 活期检测版本等性能都是经过这个来完成的.
WP Cron 能够为咱们完成什么? 咱们能够循环更新和提交网站数据, 节日活期向读者发送贺卡或许表单 ...
它的原理就是将创立的定时义务存储到数据库里,当有人拜访的时分就去判别一下能否到工夫需求执行这个定时义务,假如到工夫则执行。
由于这种原理,所以执行的工夫可能会有一些偏差,但随着网站的阅读量攀升和网络爬虫的一直拜访,会让定时义务执行的工夫越来越精确。
WP-Cron 效率不高, 但还是很不便好用的, 整顿了一下相干函数的应用办法如下.
函数
wp_get_schedule
经过勾子别名, 获取预约布置的勾子. 胜利时前往循环周期类别 (hourly, twicedaily, daily, ...), 失败时前往 false.
<?php wp_get_schedule( $hook, $args ) ?>
$hook: 勾子别名
$args: 勾子对应函数的参数数组 (可选)
wp_get_schedules
WordPress 默许支持的循环周期类别有 hourly, twicedaily 和 daily. 经过该函数咱们能够获取一切这些循环周期数组.
<?php wp_get_schedules() ?>
在默许状况下, 由以上办法取得的数组对象如下.
array( 'hourly' => array( 'interval' => 3600, 'display' => 'Once Hourly' ), 'twicedaily' => array( 'interval' => 43200, 'display' => 'Twice Daily' ), 'daily' => array( 'interval' => 86400, 'display' => 'Once Daily' ) )
咱们能够向 cron_schedules 过滤器增加更多的类型. 增加例子如下:
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 $timestamp = wp_next_scheduled( $hook, $args ); ?>
$hook: 勾子别名
$args: 勾子对应函数的参数数组 (可选)
wp_schedule_event
按周期循环预约布置一个 WordPress 勾子, 在预约工夫触发勾子对应的函数.
<?php wp_schedule_event($timestamp, $recurrence, $hook, $args); ?>
$timestamp: 工夫 (整型)
$recurrence: 循环周期类别 (hourly, twicedaily, daily, ...)
$hook: 勾子别名
$args: 勾子对应函数的参数数组 (可选)
wp_reschedule_event
按周期循环从新预约布置一个 WordPress 勾子. 但我发现这个办法不能失常应用, Codex 写得很草, 假如哪位分明晓得怎样应用, 请告知一下.
wp_unschedule_event
经过预约工夫和勾子别名, 勾销预约的布置.
<?php wp_unschedule_event($timestamp, $hook, $args ); ?>
$timestamp: 工夫 (整型)
$hook: 勾子别名
$args: 勾子对应函数的参数数组 (可选)
wp_clear_scheduled_hook
经过勾子别名, 移除预约布置的勾子.
<?php wp_clear_scheduled_hook( $hook ); ?>
$hook: 勾子别名
wp_schedule_single_event
预约布置一个 WordPress 勾子, 在预约工夫触发勾子对应的函数. 与 wp_schedule_event 不同的是该办法的只布置一次触发, 不存在循环预约.
<?php wp_schedule_single_event($timestamp, $hook); ?>
$timestamp: 工夫 (整型)
$args: 勾子对应函数的参数数组 (可选)
从下面的函数可用的参数来看,咱们就能够整顿出以下几个罕用的参数:
参数
$timestamp
(整数)(必需)**次执行此定时义务的工夫,需求传一个工夫戳,普通状况下都是当场执行,但不能用 time() 函数,而是用 WordPress 的工夫函数 current_time()。
默许值:None
$recurrence
(字符串)(必需)执行频率。每隔多长工夫执行一次。能够填写 hourly (每小时执行一次)、twicedaily (每天执行两次,也就是 12 小时执行一次)和 daily (24 小时执行一次)。
默许值:None
$hook
(字符串)(必需)执行的钩子。在执行定时义务的时分会调用这个钩子,往这个钩子挂在函数即可完成定时执行函数。
默许值:None
$args
(数组)(可选)传递的参数,会被传递到挂载到定时钩子的函数里的参数。
默许值:None
前往值
(布尔 | null)假如增加胜利则前往 null,不胜利则前往 False
例子
if( !wp_next_scheduled( 'test' ) ) wp_schedule_event( current_time( 'timestamp' ), 'twicedaily', 'test' );
首先应用 wp_next_scheduled() 函数判别能否曾经创立,假如没创立则创立一个定时义务。
把需求执行的代码挂载到 test 钩子上就行了。
以上就是安达网络工作室关于《在WordPress中使用wp-cron插件来设置定时任务》的一些看法。更多内容请查看本栏目更多内容!
本文实例讲述了Wordpress分类,标签,分页显示及翻页呈现404谬误的处理办法。分享给大家供大家参考。详细剖析...
首先,你要在wp-content/plugins/下建设一个文件夹,文件夹的名字最好只由字母、数字、“-”和下...
本文实例讲述了WordPress完成的首页幻灯片展现性能。分享给大家供大家参考,详细如下: 关于WordPress拓展性...
WordPress 4.1 正式版公布,这次更新带来了2015主题(Twenty Fifteen),免干扰写作模式,暗藏各种芜杂以及...
露兜博客首页的访客可自行抉择文章排序形式的成果是怎样做的,明天就来给大家分享这个文章排序成果的完成进...
导航菜单 导航菜单早已 "深化民意", 在博客上的使用日益重要且多样. 从本文开端, 我将展开几个对于 WordPre...