概要
wp_next_scheduled
関数は、スケジュールに登録されているアクションの実行時間を取得するために使用されるWordPressの関数です。この関数は、特定の「フック」名が指定された場合、そのフックに関連付けられた次回実行予定の時間を返します。主にCronジョブや定期的に実行する必要があるアクションの管理に使用されます。
wp_next_scheduled
がよく使用される機能の例は以下の通りです。
- 定期的なバックアップのスケジュール設定
- データベースのクリーンアップ処理
- 定期的なメール通知の送信
- プラグインやテーマの更新チェック
- RSSフィードの更新
- 外部APIからのデータ取得
- カスタム投稿タイプの定期的な処理
- 定期的なログの記録や監視
構文
wp_next_scheduled( string $hook, array $args = array() )
パラメータ
$hook
(string): 取得したいフックの名前。$args
(array) [オプション]: フックに渡す引数。
戻り値
- (int|false): 次回の実行時間のUnixタイムスタンプを返します。スケジュールが存在しない場合はfalseを返します。
関連する関数
使用可能なバージョン
- これは、WordPress 3.0.0以降で使用可能です。
コアファイルのパス
wp-includes/cron.php
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1: 次回実行予定時刻の取得
$next_run = wp_next_scheduled( 'my_custom_hook' );
if ( $next_run ) {
echo '次回実行予定時刻: ' . date( 'Y-m-d H:i:s', $next_run );
}
このサンプルは、特定のカスタムフック「my_custom_hook」の次回の実行時刻を取得し、表示しています。
サンプル2: フックが未スケジュールの場合の処理
if ( !wp_next_scheduled( 'my_custom_hook' ) ) {
wp_schedule_event( time(), 'hourly', 'my_custom_hook' );
}
このサンプルは、指定したフックがまだスケジュールされていない場合に、1時間ごとに実行するようスケジュールしています。
サンプル3: 特定の引数を持つスケジューリング
$args = array( 'post_id' => 123 );
if ( !wp_next_scheduled( 'my_custom_hook', $args ) ) {
wp_schedule_event( time(), 'daily', 'my_custom_hook', $args );
}
このサンプルは、特定の投稿IDを引数として持つフック「my_custom_hook」のスケジュールを設定します。
サンプル4: 次回実行時刻が過去の場合の確認
$next_run = wp_next_scheduled( 'my_custom_hook' );
if ( $next_run && $next_run < time() ) {
echo 'フックは過去にスケジュールされています。';
}
このサンプルは、次回の実行時刻が現在の時間よりも過去であれば警告メッセージを表示します。
サンプル5: スケジュールのクリアと再スケジュール
$hook = 'my_custom_hook';
if ( wp_next_scheduled( $hook ) ) {
wp_clear_scheduled_hook( $hook );
}
wp_schedule_event( time(), 'twicedaily', $hook );
このサンプルは、既にスケジュールされているフックをクリアし、2日に1回実行するよう再スケジュールしています。