用户登录

在 WordPress 添加一个计划任务用的是 wp_schedule_event .. 我们可以在 WordPress 初始化的时候去添加这些计划任务 ...

先要设置一下任务开始的时间,这里用一个 time() ,表示可以立即开始这个任务 ... 然后是每次重复任务的间隔,你可以使用 WordPress 自带的 hourly .. twicedaily ..daily ... 这里我们用一下之前自己创建的这个 minutely ...

下面需要再指定一个 hook ,它可以处理任务具体要做的事情 .. 名字是 ninghao_demo_random_name .. 这是我随便起的一个名字 ... 你可以根据任务的作用去命名这个 hook ...

最后一个还有一个可选参数 ... 它是传递给 hook 的值 ... 再去设置一个条件,如果系统没有计划这个任务,就去添加它,如果已经有了,就不用再计划这个任务了 ..

wp_next_scheduled .. 把计划任务的时候指定的那个 hook 的名字交给这个方法 ... 它可以得到任务下一次要执行的时间,如果没有得到指定的任务的下一次执行的时间,它会返回 false ,也就是我们还没有计划这个任务 ... 前面再加上一个 ! 号 ...

我们再去使用一下这个 hook ... add_action ... 名字是 ninghao_demo_random_name ... 再设置一个函数 ...

里面添加一个变量,名字是 $emoji ... 它的值是一组表情符号 ... 再用一下 WordPress 的 update_option 去更新一个选项的值 .. 选项的名字是 blogname ,也就是网站的名字 ...

然后再随机的从 emoji 里面选一个表情符号作为网站的名字 ... 我们可以再去试一下 ...

刷新一下页面的显示 ... 按说应该会立即执行计划任务 .. 不过我发现自己用 docker 搭建的环境,不能正常运行 WordPress 的维护任务 .. 后面我们会介绍解决的方法 ...

下面我们可以先去手工的执行一下它 .. 打开终端 ... 先查看一下任务的列表 ...

这里会出现我们注册的 ninghao_demo_random_name 这个任务 ... 手工的去运行一下它 .. wp cron event run .. 加上任务的名字 ...

再查看一下任务的列表 ... 你会看到这两个任务列表里面, ninghao_demo_random_name 这个任务下一次执行的时间会有一些区别 ...

回到 WordPress 的前台页面 ... 执行了我们的计划任务以后, 会把网站的名字修改成随机的表情符号 ...

没有意外的话,每隔一分钟这个名字就会换一次 ...

要注意 WordPress 的计划任务依赖页面的刷新,也就是即使过了一分钟,没有人访问你的网站,那些计划要执行的任务也不会执行,直到有人访问了你的网站 ...

https://developer.wordpress.org/reference/functions/wp_schedule_event/

定义计划任务《 WordPress 开发:计划任务 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点