wp_get_schedules() WP 2.1.0

Отримує підтримувані Cron інтервали часу.

Підтримувані інтервали часу – це зареєстровані в WP інтервали, які можна вказувати у функціях планування подій, таких як wp_schedule_event() – в аргументі $recurrence ми вказуємо: ‘ hourly ‘, ‘ twicedaily ‘ або ‘ daily ‘.

Плагіни можуть додавати свої інтервали за допомогою фільтра cron_schedules. Це хук передає масив масивів з даними про кожен інтервал (див. приклад 1): назви ключів головного масиву – це назва інтервалів, значення має масив із двома елементами: ‘interval’ та ‘display’.

interval– це значення за секунди, інтервал через який завдання має повторюватися. Так, hourly (кожну годину) має значення – 3600 ( 60 * 60 ). Тижневий інтервал відповідно матиме значення 60*60*24*7 або 604800.

1 раз – 0.000001 сек
(швидкість світла) | 50000 разів – 0.91 сек
(дуже швидко) |
PHP 7.0.19, WP 5.0.2

Хуки з функції

Повертає

Массив[]. Двовимірний асоціативний масив даних.

Використання

$schedules = wp_get_schedules();

Приклади

0

#1 Приклад того, що функція повертає:

$rrr = wp_get_schedules();

echo print_r($rrr);

/*
отримаємо:
Array
(
	[hourly] => Array
		(
			[interval] => 3600
			[display] => Щогодини
		)

	[twicedaily] => Array
		(
			[interval] => 43200
			[display] => Двічі на день
		)

	[daily] => Array
		(
			[interval] => 86400
			[display] => Щодня
		)

)
*/
0

#2 Приклад додавання нового інтервалу для плагіна.

Щоб додати новий інтервал для Cron WordPress ми можемо використовувати фільтр cron_schedules. Додамо інтервал повторення події: раз на тиждень:

add_filter( 'cron_schedules', 'cron_add_weekly');

function cron_add_weekly( $schedules ) {
	// Adds once weekly to the existing schedules.
	$schedules['weekly'] = array(
		'interval' => WEEK_IN_SECONDS, // 604800 сек.
		'display' => __( 'Once Weekly' )
	);
	return $schedules;
}

список змін

З версії 2.1.0Введено.
З версії 5.4.0The ‘weekly’ schedule був added.

wp get schedules WP 6.0.2

function wp_get_schedules() {
	$schedules = array(
		'hourly' => array(
			'interval' => HOUR_IN_SECONDS,
			'display' => __( 'Once Hourly' ),
		),
		'twicedaily' => array(
			'interval' => 12 * HOUR_IN_SECONDS,
			'display' => __( 'Twice Daily' ),
		),
		'daily' => array(
			'interval' => DAY_IN_SECONDS,
			'display' => __( 'Once Daily' ),
		),
		'weekly' => array(
			'interval' => WEEK_IN_SECONDS,
			'display' => __( 'Once Weekly' ),
		),
	);

	/**
	 * Filters the non-default cron schedules.
	 *
	 * @ Since 2.1.0
	 *
	 * @param array[] $new_schedules Залишається без будь-якої зниженої скриньки schedule arrays. Default empty.
	 */
	return array_merge( apply_filters( 'cron_schedules', array() ), $schedules );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *