描述
计划一个由WordPress在指定的UTC时间触发的钩子。
如果预定时间已过,当有人访问您的WordPress站点时,将触发此操作。
请注意,除非为每个计划的事件传递唯一的$args
值,否则将忽略在现有事件的10分钟内发生的具有相同动作钩子的计划任务事件。
使用wp_next_scheduled()防止重复事件。
使用wp_schedule_event()计划定期事件。
参数
$timestamp
int必填-
下次运行事件的时间戳(UTC)。
$hook
string必填-
事件运行时要执行的动作钩子。
$args
array可选-
包含要传递给钩子回调函数的参数的数组。数组中的每个值都作为单独的参数传递给回调。
忽略数组键。默认:
array()
$wp_error
bool可选-
失败时是否返回WP_Error。
默认:
false
返回
bool|WP_Error 如果计划任务事件成功则为true。失败时为false或WP_Error。
钩子
- apply_filters( 'pre_schedule_event',
null|bool|WP_Error $pre ,stdClass $event ,bool $wp_error ) -
过滤以预检或劫持事件计划。
- apply_filters( 'schedule_event',
stdClass|false $event ) -
在计划任务事件之前修改事件。
源码
更新日志
版本 | 描述 |
---|---|
5.7.0 | 添加了$wp_error 参数。 |
5.1.0 | 返回值修改为指示成功或失败的布尔值,添加了'pre_schedule_event'过滤器以使函数短路。 |
2.1.0 | 开始引入 |
使用示例
计划一小时后的事件
function do_this_in_an_hour() { // do something } add_action( 'my_new_event','do_this_in_an_hour' ); // put this line inside a function, // presumably in response to something the user does // otherwise it will schedule a new event on every page visit wp_schedule_single_event( time() + 3600, 'my_new_event' ); // time() + 3600 = one hour from now.
用参数计划一小时后的事件
function do_this_in_an_hour( $arg1, $arg2, $arg3 ) { // do something } add_action( 'my_new_event', 'do_this_in_an_hour', 10, 3 ); // put this line inside a function, // presumably in response to something the user does // otherwise it will schedule a new event on every page visit wp_schedule_single_event( time() + 3600, 'my_new_event', array( $arg1, $arg2, $arg3 ) ); // time() + 3600 = one hour from now.
文档中说:“请注意,除非为每个计划的事件传递唯一的$args值,否则将忽略使用相同的动作钩子在现有事件发生后10分钟内的计划任务事件。”
代码显示,否则,$args上没有重复检查,只有10分钟的时间。。
在计划时考虑使用WordPress的time常量。
例子:
wp_schedule_single_event( time() + (DAY_IN_SECONDS * 5), 'some_hook_name', array( $arg1, $arg2, $arg3 ) );
安排5天后将发生的事件。