wp_cron() WP 2.1.0

Запускає всі заплановані Крон події, час яких настав.

Перевіряє чи існує хоч одне завдання з часом. Якщо так, то викликає функцію spawn_cron() , яка створює запит на файл крона /example.com/wp-cron.php .

При виклику цієї функції будуть запущені всі дії, які були заплановані і час їхнього запуску вже настав.

Докладніше про крон читайте в описі функції wp_schedule_event() , яка створює нову подію. Там купа прикладів і насправді все те, що потрібно знати про крон в WordPress.

Цю функцію не потрібно викликати окремо. Вона викликається автоматично на події init :

if ( ! defined( 'DOING_CRON' ) ) {
	add_action('init', 'wp_cron');
}

Якщо десь визначено константу DISABLE_WP_CRON, то функція нічого не запустить.

Cron — ця назва взята з UNIX-подібних операційних систем, де завдання цього демон-планувальника входить: періодичне виконання завдань у певний час.

Детально про Крон: WP Cron (планувальник) у WordPress

Працює на основі:
_wp_cron()

Хуків немає.

Повертає

true|false|int|null.

  • Число – при успішному виконанні – кількість відпрацьованих подій (0 означає, що зараз немає подій, які потрібно виконати).
  • false – коли не вдалося обробити хоч одну подію.

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

<?php wp_cron() ?>

Приклади

0

#1 Приклад, надсилання повідомлення щогодини на email.

Код можна помістити, наприклад, файл теми functions.php .

// Включаємо крон завдання, якщо вона ще не включена.
// Краще це робити один раз при активації плагіна, наприклад
if ( ! wp_next_scheduled( 'my_task_hook' ) ) {
	wp_schedule_event( time(), 'hourly', 'my_task_hook' );
}

// додаємо крон хук
add_action( 'my_task_hook', 'my_task_function');
function my_task_function() {
	wp_mail( '[email protected]', 'Автоматичний лист', 'Запланований лист від WordPress.');
}
0

#2 Додавання крон задачі та свого інтервалу

Код потрібно додавати у файл functions.php або плагін.

add_filter( 'cron_schedules', 'mycron_add_schedule');
add_action( 'init', 'mycron_add_hook');

## додає крон функцію
function mycron_add_hook(){
	if ( ! wp_next_scheduled( 'my_cron_worker_start' ) ) {
		wp_schedule_event( time(), 'my_cron_worker', 'my_cron_worker_start');
	}
}

## додає крон інтервал часу
function mycron_add_schedule( $schedules ){
	$schedules['my_cron_worker'] = array( 'interval' => 60, 'display' => 'My Cron Worker' );
	return $schedules;
}

список змін

З версії 2.1.0Введено.
З версії 5.1.0Return value added to indicate success or failure.
З версії 5.7.0Functionality moved to _wp_cron() to which this becomes a wrapper.

Код wp_cron() WP 6.0.2

function wp_cron() {
	if ( did_action( 'wp_loaded' ) ) {
		return _wp_cron();
	}

	add_action( 'wp_loaded', '_wp_cron', 20);
}

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

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