WordPress.org

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

zh-cn:函数/wp schedule event

描述

对一个钩子函数作定时处理,这个钩子会通过 WordPress 动作核心,在特定的时间间歇执行,时间间歇可以自定义.如果 定时的事件参数 (time) 被传递了的话,这个动作会在有人访问你的 WordPress 站点的时候触发.通过查看 Plugin API 获得钩子的列表.

用法

 <?php wp_schedule_event(time(), 'hourly''my_schedule_hook'$args); ?> 

参数

$timestamp
(integer) (required) The first time that you want the event to occur. This must be in a UNIX timestamp format.
你希望事件发生的第一次事件.这里必须是一个 UNIX 风格的时间戳
Default: None
$recurrance
(string) (required) How often the event should reoccur. Valid values:
  • hourly
  • twicedaily
  • daily
这个事件会在多久之后重新发生.有效值:
  • hourly
  • twicedaily
  • daily
Default: None
$hook
(string) (required) The name of an action hook to execute.要运行的动作钩子名
Default: None
$args
(array) (optional) Arguments to pass to the hook function(s).传给钩子函数的参数
Default: None

例子

安排一个每小时执行的任务

在一个插件中设定一个每小时执行一次的任务,在激活插件的时候的时候调用 wp_schedule_event (否则会产生很多的定时事件):

register_activation_hook(__FILE__, 'my_activation');
add_action('my_hourly_event', 'do_this_hourly');

function my_activation() {
  if (! wp_next_scheduled ( 'my_hourly_event' )) {
    wp_schedule_event(time(), 'hourly', 'my_hourly_event');
  }
}

function do_this_hourly() {
  // do something every hour
}

别忘了在禁用插件的时候清理定时器:

register_deactivation_hook(__FILE__, 'my_deactivation');

function my_deactivation() {
  wp_clear_scheduled_hook('my_hourly_event');
}

其它参考

延伸阅读