Есть у меня несколько сайтов на wordpress, которые я когда то сделал в порыве энтузиазма, а теперь не занимаюсь ими особо.
На днях обратил внимание, что один из них содержит > 12000 непроверенных комментариев. Комментарии я давно не публикую сразу, ибо боты не дремлют. Я сначала подумал, что не добавил «дежурный» скрипт в тему сайта, который определяет и удаляет спам. Оказалось, что код был внедрен, но с весьма толерантными рамками фильтрации.
А что делать с 12к записей ждущих проверки? Сначала, я было задумчиво начал удалять их через админку (по 20 штук за раз), делать было особо нечего, потому стал считать в уме сколько займет времени этот замечательней процесс. :)
Пришлось написать небольшой скрипт для SQL, который удаляет все прошедшие проверку комментарии (чистит корзину, спам и ожидающие проверку).
1 2 3 |
DELETE FROM wp_comments WHERE comment_approved = 0; DELETE FROM wp_commentmeta WHERE NOT exists(SELECT * FROM wp_comments WHERE wp_comments.comment_ID = wp_commentmeta.comment_id); |
Сначала мы чистим таблицу с комментариями, а потом подчищаем связанные с ними мета данные. Пригодится тем, кто не утруждает себя разобраться со структурой базы WP, или делает подобные вещи не часто.