Когда ваш сайт WordPress настроен на использование пингов, база данных может заполниться большим количеством записей do_pings
WP Cron. В этой статье приведена пара быстрых способов их очистки: отключение функциональности или удаление записей do_pings
из базы данных.
Отключение do_pings
Записи do_pings
добавляются только тогда, когда в общих настройках WordPress включены пинги.
Мы можем отключить это через:
Settings -> Discussion -> Attempt to notify any blogs linked to the article
Отключение этой настройки означает, что ваш сайт не будет пинговать все ресурсы, на которые есть ссылки. Ничего страшного, но имейте в виду.
Удаление do_pings
Чтобы удалить все существующие экземпляры do_pings
из базы данных, вы можете добавить следующую строку кода в файл functions.php вашей темы:
wp_clear_scheduled_hook('do_pings');
Затем перезагрузите любую страницу на вашем сайте, чтобы выполнить эту строку кода. Это удалит все экземпляры do_pings
. Далее вы можете оставить строку или удалить ее, решать вам.
Если вы оставите ее на месте, то при каждом запросе будет использоваться дополнительная обработка для удаления записей do_pings
из вашей базы данных. Или, если вы удалите строку, записи do_pings
в конечном итоге вернутся.
Отключение и удаление
Вот альтернативный метод отключения и полного удаления функции do_pings. Добавьте следующий сниппет в файл функций вашей темы:
if (isset($_GET['doing_wp_cron'])) {
remove_action('do_pings', 'do_all_pings');
wp_clear_scheduled_hook('do_pings');
}
Этот фрагмент кода отключает do_pings
каждый раз, когда WordPress "выполняет" крон (cron), а также удаляет все существующие записи do_pings
в базе данных. Ваш опыт может быть иным, поэтому хорошо протестируйте это перед запуском.
Некоторые замечания, которые могут быть применимы при работе с пингом/кроном:
- Пинги происходят только во время процесса cron.
- Пинги могут быть медленными из-за сайтов, которые вы пингуете.
- Функция
wp_update_post()
всегда устанавливает график выполнения действияdo_pings
.