博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wp-cron.php do=,WordPress使用WP-Cron函数定时执行任务
阅读量:5868 次
发布时间:2019-06-19

本文共 1658 字,大约阅读时间需要 5 分钟。

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

一、定义一个更新时间

// 代码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),函数打印输出为:

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():

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) "每日一次"

}

}

// 代码2

if ( ! wp_next_scheduled( 'salong_add_every_time' ) ) {

wp_schedule_event( time(), 'every_time', 'salong_add_every_time' );

}

三、需要执行的代码函数

// 代码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 文件中即可定时执行任务函数中的代码。

转载地址:http://vftnx.baihongyu.com/

你可能感兴趣的文章
微服务实战(一):微服务架构的优势与不足
查看>>
TFT LCD 7寸1024*600 FPGA点亮
查看>>
教你如何抢注一个快过期的域名
查看>>
request.getInputStream()乱码处理方法
查看>>
golang更改自动重新编译gowatch
查看>>
lua 数据以table表的形式存储
查看>>
网站建设表单下拉选框及查询下拉选框
查看>>
linux开源安装之四步
查看>>
命令行打包android工程
查看>>
Git
查看>>
Android-onInterceptTouchEvent()和onTouchEvent()
查看>>
linux下 采用freetds 连接sqlserver2008
查看>>
Android有效解决加载大图片时内存溢出的问题
查看>>
Java(Android)线程池
查看>>
Guava学习笔记-简化List分组成Map<String,List>的实现
查看>>
Banyan_2015 c
查看>>
程序问题解决流程思考
查看>>
test
查看>>
按钮上一个下一个点击-dom对象显示-代码简单-i累加给eq获取
查看>>
网页分享插件
查看>>