wp_doing_cron()
Определяет является ли текущий запрос, запросом к Крону. Условный тег.
Это обертка для проверки установлена ли константа 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' );
}
});
Список изменений
| С версии 4.8.0 | Введена. |
Код wp_doing_cron() wp doing cron WP 6.9
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 );
}