wp_unschedule_event()


WordPressの関数wp_unschedule_event()は、特定のイベントをスケジュールから削除するために使用されます。

構文

wp_unschedule_event( int $timestamp, string $hook, array $args = array() );

引数の説明:

  • $timestamp (int) — イベントのタイムスタンプ。UNIX形式で指定します。
  • $hook (string) — 削除したいイベントのアクションフック名。
  • $args (array) (省略可能) — イベントに関連付けられた引数。デフォルトは空の配列です。

例 1: シンプルなイベントの解除

指定したアクションフックのイベントを削除します。

wp_unschedule_event( time(), 'my_custom_cron_hook' );

例 2: 引数付きイベントの解除

引数を指定してスケジュールされたイベントを削除します。

wp_unschedule_event( time(), 'my_custom_cron_hook', array( 'arg1', 'arg2' ) );

例 3: 複数イベントの解除

複数のタイムスタンプでスケジュールされた同じフックのイベントを削除します。

$timestamps = wp_next_scheduled( 'my_custom_cron_hook' );
foreach ( $timestamps as $timestamp ) {
    wp_unschedule_event( $timestamp, 'my_custom_cron_hook' );
}

例 4: 動的引数でイベントを削除

動的に生成された引数を用いてイベントを削除します。

$args = array( 'dynamic_arg' => rand() );
wp_unschedule_event( time(), 'my_custom_cron_hook', $args );

例 5: 未来のイベントを解除

指定した将来のタイムスタンプを用いてイベントを削除します。

$future_timestamp = strtotime( '+1 day' );
wp_unschedule_event( $future_timestamp, 'my_custom_cron_hook' );

注意事項

  • スケジュールされていないイベントを削除しようとするとエラーにはなりませんが、何も影響を与えません。
  • wp_unschedule_event()は特定のタイムスタンプを持つイベントのみを解除します。すべてのインスタンスを削除する場合は、ループを使用してください。
  • 引数が正しく指定されていない場合、対象のイベントが見つからない可能性があります。

関連機能: