
Я установил плагин Post Views Counter на сайте, чтобы видеть количество просмотров, и сразу столкнулся с проблемой. Каждый день моя статистика за предыдущий день стиралась, и график показывал только просмотры за сегодня. Вот как я решил проблему.
Для начала, я проверил настройки плагина. Здесь можно задать интервал очистки. По умолчанию он установлен в 0, но данные по-прежнему удалялись. Описание ясно даёт понять, что это нежелаемое поведение.

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

Реальным решением было добавить код в файл function.php моей темы, чтобы отключить расписание
add_filter( 'cron_schedules', function( $schedules ) {
unset( $schedules['post_views_counter_interval'] );
return $schedules;
});Теперь я на 100% процентов уверен, что плагин не удалит данные.
Обновление
Некоторое время назад я проверил, не был ли исправлен баг, и его, действительно, уже не было, поэтому я удалил фильтр. В любом случае, я думаю, что этот пост всё ещё может быть полезен для подобных случаев, когда плагин создаёт расписание cron, которое вам не нужно.
