ワードプレスのwp_get_schedules関数の使用方法・解説

概要

wp_get_schedules関数は、サポートする繰り返しスケジュール情報を取得するために使用されます。この関数は、WordPressのスケジュール管理において、定期的なイベントやタスクを登録する際に特に重要です。具体的には、次のような機能を実装する際によく使われます:

  1. 定期的な投稿のスケジューリング
  2. プラグインによるタスクの自動実行
  3. Cronジョブの登録と管理
  4. 定期的なコンテンツ更新
  5. 定期的なデータバックアップの実行
  6. 定期的なメール通知の送信
  7. スケジュールされたイベントの確認
  8. ユーザーアクティビティに基づく自動処理の実装

構文

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スケジュールの間隔を出力します。

この関数について質問する


上の計算式の答えを入力してください