WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

wp_doing_cron() WP 4.8.0

Определяет является ли текущий запрос, запросом к Крону. Условный тег.

Это обертка для проверки установлена ли константа DOING_CRON:

if( defined( 'DOING_CRON' ) && DOING_CRON ){
	// крон задача
}

Константа DOING_CRON устанавливается только когда запрос был запущен с файла wp-cron.php. Т.е. чтобы сработала эта условная функция, нужно чтобы WP загрузился через файл wp-cron.php. Обычно такую загрузку инициализирует запуск крона через функцию wp_cron(). Все это WordPress делает автоматически!

Есть точно такая же обертка для проверки AJAX запроса: wp_doing_ajax()

✈ 1 раз = 0.000021с = очень быстро | 50000 раз = 0.12с = очень быстро PHP 7.1.2, WP 4.8
Хуки из функции:
Возвращает

true/false.

  • true - если это крон запрос.
  • false - если это любой другой запрос кроме Cron.

Использование

if( wp_doing_cron() ){
	// WP загружен через крон
}

Примеры

#1 Сделаем что либо только когда выполняется крон запрос.

Для примера, давайте удалим событие 'my_schedule_hook' из крон расписания, при очередном срабатывании крона...

add_action( 'shutdown', function(){
	if( wp_doing_cron() ){
		// удалим крон задачу
		$timestamp = wp_next_scheduled('my_schedule_hook');

		wp_unschedule_event( $timestamp, 'my_schedule_hook' );
	}
});

Код wp doing cron: wp-includes/load.php WP 4.8.1

<?php
function wp_doing_cron() {
	/**
	 * Filters whether the current request is a WordPress cron request.
	 *
	 * @since 4.8.0
	 *
	 * @param bool $wp_doing_cron Whether the current request is a WordPress cron request.
	 */
	return apply_filters( 'wp_doing_cron', defined( 'DOING_CRON' ) && DOING_CRON );
}

Cвязанные функции

Из метки: Условные теги (типов страниц и запросов )

Еще из метки: Условные теги (все)

Еще из раздела: Планировщик задач (Cron)

wp_doing_cron Комментариев нет

Здравствуйте, !

Ваш комментарий