Если одна и та же задача wp-cron запускается по несколько раз вместо одного, вероятная причина — событие было запланировано повторно без проверки, не запланировано ли оно уже.
Отсутствие проверки перед планированием
Если код плагина или темы вызывает wp_schedule_event при каждой загрузке страницы без предварительной проверки функцией wp_next_scheduled, может накопиться несколько параллельных запланированных версий одной и той же задачи.
Правильный паттерн планирования
if (!wp_next_scheduled('my_custom_cron_hook')) {
wp_schedule_event(time(), 'hourly', 'my_custom_cron_hook');
}
Такая проверка гарантирует, что событие будет запланировано только один раз, даже если код выполняется многократно.
Как найти дублирующиеся задачи
Плагин WP Crontrol показывает полный список запланированных задач с их обработчиками — если один и тот же хук встречается в списке несколько раз, это подтверждает дублирование планирования.



