schedule_event
云策文档标注
概述
schedule_event 是一个 WordPress 过滤器钩子,用于在事件被添加到 cron 计划之前修改事件数据。它允许开发者拦截和调整计划事件,例如阻止特定事件执行或修改其参数。
关键要点
- schedule_event 是一个过滤器钩子,应用于新事件添加到 cron 计划时。
- 它接收一个参数:$event,这是一个包含事件数据的对象或 false(用于阻止事件被计划)。
- 事件数据包括 hook(动作钩子)、timestamp(时间戳)、schedule(计划频率)、args(参数数组)和 interval(可选,间隔秒数)。
- WordPress 核心在 3.21 版本中计划了多个重复事件和单次事件,如 wp_version_check 和 publish_future_post。
代码示例
add_filter( 'schedule_event', 'filter_cron_events', 10, 1);
function filter_cron_events($event) {
switch ($event->hook) {
case 'wp_version_check':
case 'wp_update_plugins':
case 'wp_update_themes':
$event = false;
break;
}
return $event;
}
原文内容
Modify an event before it is scheduled.
Parameters
$eventobject|false-
An object containing an event’s data, or boolean false to prevent the event from being scheduled.
hookstringAction hook to execute when the event is run.timestampintUnix timestamp (UTC) for when to next run the event.schedulestring|falseHow often the event should subsequently recur.argsarrayArray containing each separate argument to pass to the hook’s callback function.intervalintOptional. The interval time in seconds for the schedule. Only present for recurring events.
Source
$event = apply_filters( 'schedule_event', $event );
Changelog
| Version | Description |
|---|---|
| 3.1.0 | Introduced. |
Skip to note 2 content
Steven Lin
Example migrated from Codex:
Eliminates all checks for plugins
add_filter( 'schedule_event', 'filter_cron_events', '10', 1); function filter_cron_events($event) { switch ($event->hook) { case 'wp_version_check': case 'wp_update_plugins': case 'wp_update_themes': case 'wp_update_themes': $event = false; break; } return $event; }