Как отключить расписание cron в WordPress

Я установил плагин Post Views Counter на сайте, чтобы видеть количество просмотров, и сразу столкнулся с проблемой. Каждый день моя статистика за предыдущий день стиралась, и график показывал только просмотры за сегодня. Вот как я решил проблему.

Для начала, я проверил настройки плагина. Здесь можно задать интервал очистки. По умолчанию он установлен в 0, но данные по-прежнему удалялись. Описание ясно даёт понять, что это нежелаемое поведение.

Первое решение — задать огромное значение, вплоть до 999 999 лет.

Но мне это не нравится. Если в плагине есть баг со значением 0, возможно будет и другой со значением 999 999 в будущем. Моей целью было устранить любую возможность потери данных.

Итак я посмотрел в код и выяснил, что плагин использует расписание cron post_views_counter_interval для очистки данных. Я установил другой плагин, WP Crontrol, в надежде, что с его помощью я смогу отключить расписание. Но нет. Это не сработает, потому что он не может контролировать расписания других плагинов.

Реальным решением было добавить код в файл function.php моей темы, чтобы отключить расписание

PHP
add_filter( 'cron_schedules', function( $schedules ) {
    unset( $schedules['post_views_counter_interval'] );
    return $schedules;
});

Теперь я на 100% процентов уверен, что плагин не удалит данные.

Обновление

Некоторое время назад я проверил, не был ли исправлен баг, и его, действительно, уже не было, поэтому я удалил фильтр. В любом случае, я думаю, что этот пост всё ещё может быть полезен для подобных случаев, когда плагин создаёт расписание cron, которое вам не нужно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *