#热门
[WordPress教程] 使用 WP-Cron 在 WordPress 中安排任务,定时执行 -静鱼客栈

2021-09-22 0 3,379

我们知道 Linux 服务器有个 Cron 的功能,可以让你定时去执行一些作业,但是并不是每个人都对 Linux 系统很熟悉,并且不是所有的主机管理面板都有 Cron 这个栏目。其实 WordPress 本身也有类似于 Cron 的功能,让你可以直接在 WordPress 后台执行安排好任何,定时执行。

WP-Cron 功能是基于页面浏览的,所以时间上不会那么准确,会相差一些,但是随着博客流量增大,这个准确度会越来越高的。比如 WordPress 本身的文章预发布功能就是基于 WP-Cron 实现的。WP-Cron 还定义一套完整的 API,让开发者可以自己通过插件的方式定义一些作业定时执行,需要开发者定义好任务执行的频率和回调函数。

定义一个任务

WP-Cron 支持两种类型的任务:

单一的未来事件(比如设定某篇文章在将来某个时间发布)
重复发生的事件,比如每天,每个星期等一段时间内重复发生的事件(比如定时抓取某个博客的 RSS 源)

定义单一的未来事件

我们可以使用函数 wp_schedule_single_event( $timestamp, $hook, $args ) 来定义单一的未来事件:

$timestamp:事件发生时的时间戳。
$hook:事件调用的回调函数(大部分应该在1分钟内完成)
$args:传给回调函数的参数数组,这个参数是可选的

定义重复发生的事件

我们可以使用函数 wp_schedule_event( $timestamp, $recurrence, $hook, $args ) 来定义重复发生的时间。

$timestamp,$hook 和 $args 这三个参数含义和 wp_schedule_single_event。
$recurrence:事件重复的频率。
WordPress 已经内置了两种重复频率 — huorly 和 daily。但是如果还不够用,比如你定义每周发生的时间,比如:weekly?WP-Cron 也支持自定义事件频率类型。

首先我们可以使用函数 wp_get_schedules() 得到关于‘hourly’ 和 ‘daily’ 的信息,使用 print_r() 打印这个函数的输出:


Array
(
    [hourly] => Array
        (
            [interval] => 3600
            [display] => Once Hourly
        )

    [daily] => Array
        (
            [interval] => 86400
            [display] => Once Daily
        )
)

从上面的代码,我们可以很清楚的知道,这个频率内部是使用秒数来定义的。从 wp_get_schedules() 的源代码,我们可以通过 cron_schedule 这个 filter 去自定义频率类型,比如我们定义每周和每半月的频率类型:


function wpjam_more_reccurences() {
    return array(
        'weekly' => array('interval' => 604800, 'display' => 'Once Weekly'),
        'fortnightly' => array('interval' => 1209600, 'display' => 'Once Fortnightly'),
    );
}
add_filter('cron_schedules', 'wpjam_more_reccurences');

 

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝/QQ扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!305582964@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有U点奖励和额外收入!

静鱼客栈 学习中心 [WordPress教程] 使用 WP-Cron 在 WordPress 中安排任务,定时执行 -静鱼客栈 https://www.52jyu.cn/8987.html

静鱼客栈的帅逼站长~

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP贵宾介绍。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器没有下载完整造成的,可以重新进行下载即可~
查看详情

相关文章

发表评论
暂无评论
静鱼客栈-站长

为您解决烦忧 - 专业服务 看到消息会进行回复