当前浏览:首页 / WordPress函数 / wp_schedule_single_event()

wp_schedule_single_event( int $timestamp, string $hook, array $args = array(), bool $wp_error = false ): bool|WP_Error

计划仅运行一次的任务事件

event

schedule 计划任务

single


描述

计划一个由WordPress在指定的UTC时间触发的钩子。
如果预定时间已过,当有人访问您的WordPress站点时,将触发此操作。

请注意,除非为每个计划的事件传递唯一的$args值,否则将忽略在现有事件的10分钟内发生的具有相同动作钩子的计划任务事件。

使用wp_next_scheduled()防止重复事件。

使用wp_schedule_event()计划定期事件。


参数

$timestampint必填
下次运行事件的时间戳(UTC)。
$hookstring必填
事件运行时要执行的动作钩子。
$argsarray可选
包含要传递给钩子回调函数的参数的数组。数组中的每个值都作为单独的参数传递给回调。
忽略数组键。

默认:array()

$wp_errorbool可选
失败时是否返回WP_Error

默认:false


返回

bool|WP_Error 如果计划任务事件成功则为true。失败时为false或WP_Error


钩子



源码

查看源码 官方文档


更新日志

版本描述
5.7.0添加了$wp_error参数。
5.1.0返回值修改为指示成功或失败的布尔值,添加了'pre_schedule_event'过滤器以使函数短路。
2.1.0开始引入

使用示例

  • 示例1

    计划一小时后的事件

    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.
  • 示例2

    用参数计划一小时后的事件

    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.
  • 示例3

    文档中说:“请注意,除非为每个计划的事件传递唯一的$args值,否则将忽略使用相同的动作钩子在现有事件发生后10分钟内的计划任务事件。”

    代码显示,否则,$args上没有重复检查,只有10分钟的时间。。

  • 示例4

    在计划时考虑使用WordPress的time常量

    例子:

    wp_schedule_single_event( time() + (DAY_IN_SECONDS * 5), 'some_hook_name', array( $arg1, $arg2, $arg3 ) );

    安排5天后将发生的事件。