前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WordPress使用WP-Cron函数定时执行任务

WordPress使用WP-Cron函数定时执行任务

原创
作者头像
.T.
发布2022-02-22 14:44:02
1.9K0
发布2022-02-22 14:44:02
举报
文章被收录于专栏:CMS建站教程

ordPress 本身一直有 WP-Cron(计划任务)的功能,可以设置每隔一段时间来执行,不过 WP-Cron 功能是基于页面浏览的,所以时间上不会那么准确,会相差一些。通过 WP-Cron 我们就可以定期对 WordPress 定期执行一些任务,最近设计开发的导航类主题 Slhao,有一个图书模块, 通过豆瓣的 API 可获取图书信息,豆瓣评分会随着用户的评价一直在改变,如果保存在数据库,时间久了就不匹配,这时就需要让其自动执行,更新评分。

一、定义一个更新时间

代码语言:javascript
复制
    // 代码1
    add_filter( 'cron_schedules', 'salong_add_every_time' );
    function salong_add_every_time( $schedules ) {
        $schedules['every_time'] = array(
            'interval'  => 60,
            'display'   => __( '每隔一分钟', 'salong' )
        );
        return $schedules;
    }

二、安排当前任务

我们可以使用函数 wp_schedule_event() 来定义重复发生的时间,WordPress 默认已经内置了三种重复频率:每小时一次(hourly),每日两次(twicedaily)和每日一次(daily),函数打印输出为:

代码语言:javascript
复制
    array(4) {
        ["hourly"]       =>array(2) {
            ["interval"] => int(3600)
            ["display"]  => string(15) "每小时一次"
        }
        ["twicedaily"]   => array(2) {
            ["interval"] => int(43200)
            ["display"]  => string(12) "每日两次"
        }
        ["daily"]        => array(2) {
            ["interval"] => int(86400)
            ["display"]  => string(12) "每日一次"
        }
    }

默认的重复频率也许对于很多网站不够用,WP-Cron 也支持自定义事件频率类型,当我们把第一段代码添加到函数文件中,再打印输出 wp_schedule_event():

代码语言:javascript
复制
    array(4) {
        ["every_time"]   => array(2) {
            ["interval"] => int(60)
            ["display"]  => string(15) "每隔一分钟"
        }
        ["hourly"]       =>array(2) {
            ["interval"] => int(3600)
            ["display"]  => string(15) "每小时一次"
        }
        ["twicedaily"]   => array(2) {
            ["interval"] => int(43200)
            ["display"]  => string(12) "每日两次"
        }
        ["daily"]        => array(2) {
            ["interval"] => int(86400)
            ["display"]  => string(12) "每日一次"
        }
    }
代码语言:javascript
复制
    // 代码2
    if ( ! wp_next_scheduled( 'salong_add_every_time' ) ) {
        wp_schedule_event( time(), 'every_time', 'salong_add_every_time' );
    }

三、需要执行的代码函数

代码语言:javascript
复制
    // 代码3
    add_action( 'salong_add_every_time', 'salong_every_time_update_douban_average' );
    function salong_every_time_update_douban_average() {
        // 执行的代码
    }

最后将代码1,2,3添加到主题 functions.php 文件中即可定时执行任务函数中的代码。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、定义一个更新时间
  • 二、安排当前任务
  • 三、需要执行的代码函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档