WordPress имеет встроенный планировщик задач — WP-Cron. Когда нужно убрать из расписания все события, привязанные к определённому хуку, используют функцию wp_clear_scheduled_hook(). Она находит все совпадения по имени хука и удаляет их разом.

Функция появилась в WordPress 2.1.0 и находится в файле wp-includes/cron.php.

Синтаксис

wp_clear_scheduled_hook( $hook, $args = array() )

Параметры

$hook (строка) — имя хука, события которого нужно удалить из расписания.

$args (массив) — параметры хука. Важный момент: хук, запланированный с параметрами, считается отдельным событием по сравнению с хуком без параметров. Поэтому если событие создавалось с аргументами — нужно передать те же аргументы при удалении.

Пример использования

Удаляем все запланированные события для хука do_pings:

wp_clear_scheduled_hook( 'do_pings' );

Отличие от wp_unschedule_event()

Оба инструмента удаляют события из планировщика, но работают по-разному:

wp_clear_scheduled_hook() — перебирает весь массив запланированных событий и удаляет все, у которых совпадает имя хука. Удобно, когда нужно полностью очистить расписание для конкретного хука.

wp_unschedule_event() — удаляет одно конкретное событие по точному времени и имени хука. Внутри себя wp_clear_scheduled_hook() как раз вызывает эту функцию для каждого найденного события.

Разработка сайтов на Wordpress