• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/wp schedule single event

提供: WordPress Codex 日本語版
移動先: 案内検索

指定した時刻に WordPress のコア機能によって一度だけ実行されるフック(アクション)を登録します。そのアクションは誰かが WordPress サイトを訪れたときに予定した時刻を過ぎていれば実行されます。

使用法

<?php wp_schedule_single_event( $timestamp, $hook, $args ); ?>

同じ名前のイベントを10分より短い間隔で登録すると無視されるので注意してください。ただし $args にユニークな値を入れた場合は無視されません。詳しくは wp_next_scheduled() /en を見てください。

この振る舞いは変更される可能性があります。その理由は、コードの 元々の意図 が10分以内に同じイベント2つを登録させないことだったからです。次回の実行予定から10分経過するまで同じイベントを登録させないことではありませんでした。

名前と $args の両方が同じイベントを続けて登録した場合も無視されます。

パラメータ

$timestamp
整数) (必須) イベントを発生させたい時刻です。UNIX のタイムスタンプ型でなくてはなりません。WP cron はローカル時刻ではなく UTC/GMT 時刻を使います。WordPress でいつも GMT を返す time() を使ってください。(WordPress の current_time( 'timestamp' ) はデフォルトでローカル時刻です。)
初期値: なし
$hook
文字列) (必須) 実行したいフック(アクション)の名前
初期値: なし
$args
array) (オプション) フックした関数に渡す引数
初期値: array()

戻り値

(真偽値|null) 
イベントがプラグインによってキャンセルされると False、そうでなければ null

用例

今から一時間後のイベントを登録する

function do_this_in_an_hour() {
    // 何か実行する(イベント)
}
add_action( 'my_new_event','do_this_in_an_hour' );

// 次の行を関数の中に入れてください
// その関数はユーザーが何かを行ったときだけ実行されるものにしましょう
// そうしないとページ訪問のたびに毎回新しいイベントが登録されます

wp_schedule_single_event( time() + 3600, 'my_new_event' );

// time() + 3600 = 今から1時間後。

今から一時間後の引数付きイベントを登録

function do_this_in_an_hour( $arg1, $arg2, $arg3 ) {
    // 何か実行する(イベント)
}
add_action( 'my_new_event', 'do_this_in_an_hour', 10, 3 );

// 次の行を関数の中に入れてください
// その関数はユーザーが何かを行ったときだけ実行されるものにしましょう
// そうしないとページ訪問のたびに毎回新しいイベントが登録されます

wp_schedule_single_event( time() + 3600, 'my_new_event', array( $arg1, $arg2, $arg3 ) );

// time() + 3600 = 今から1時間後。

参考

Wikipedia UNIX時間フォーマット

変更履歴

新規導入: 2.1.0

ソースファイル

wp_schedule_single_event()wp-includes/cron.php にあります。

Cron関数: spawn_cron /en, wp_cron /en, wp_schedule_event(), wp_schedule_single_event() /en, wp_clear_scheduled_hook() /en, wp_next_scheduled() /en, wp_unschedule_event() /en, wp_get_schedule() /en, wp_reschedule_event /en


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » wp_schedule_single_event最新版との差分