概要
wp_get_schedules
関数は、サポートする繰り返しスケジュール情報を取得するために使用されます。この関数は、WordPressのスケジュール管理において、定期的なイベントやタスクを登録する際に特に重要です。具体的には、次のような機能を実装する際によく使われます:
- 定期的な投稿のスケジューリング
- プラグインによるタスクの自動実行
- Cronジョブの登録と管理
- 定期的なコンテンツ更新
- 定期的なデータバックアップの実行
- 定期的なメール通知の送信
- スケジュールされたイベントの確認
- ユーザーアクティビティに基づく自動処理の実装
構文
wp_get_schedules();
パラメータ
この関数は引数を受け取りません。
戻り値
wp_get_schedules
関数は、登録されたスケジュールの配列を返します。各スケジュールは、スケジュール名や間隔、ラベルといった情報を持っています。
関連する関数
使用可能なバージョン
wp_get_schedules
関数は、WordPress 2.1.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
スケジュールされたイベントのリストを取得し、各スケジュールの情報を表示します。
$schedules = wp_get_schedules();
foreach ($schedules as $schedule => $details) {
echo 'Schedule: ' . esc_html($schedule) . ', Interval: ' . esc_html($details['interval']) . ' seconds, Display Name: ' . esc_html($details['display']) . '<br>';
}
このコードは、すべてのスケジュールされたイベントの情報を出力します。
サンプルコード 2
カスタムのスケジュールを追加する前に、既存のスケジュールを確認します。
if ( ! array_key_exists( 'twicedaily', wp_get_schedules() ) ) {
// 'twicedaily' スケジュールが存在しない場合は追加
wp_schedule_event( time(), 'twicedaily', 'my_custom_hook' );
}
このコードは、twicedaily
スケジュールが存在しない場合に新たに追加します。
サンプルコード 3
特定の間隔でスケジュールされたイベントの数をカウントします。
$schedules = wp_get_schedules();
$count_twicedaily = 0;
if (array_key_exists('twicedaily', $schedules)) {
$count_twicedaily = count( wp_get_scheduled_event( 'my_custom_hook' ) );
}
echo 'Twicedaily event count: ' . $count_twicedaily;
このコードは、twicedaily
でスケジュールされたイベントの数をカウントして表示します。
サンプルコード 4
スケジュールされたタスクが実行されるたびに、現在の日時をログします。
add_action('my_custom_hook', 'log_current_time');
function log_current_time() {
error_log( 'Task executed at: ' . current_time( 'mysql' ) );
}
このコードは、カスタムフックが呼び出されるたびに現在の日時をログに記録します。
サンプルコード 5
すべてのスケジュールを出力し、特定のスケジュールの詳細を取得するサンプルです。
$schedules = wp_get_schedules();
if ( isset( $schedules['hourly'] ) ) {
echo 'Hourly schedule interval: ' . $schedules['hourly']['interval'];
}
このコードは、hourly
スケジュールの間隔を出力します。