Удаление всех комментариев из WordPress


Что если на вашем wordpress сайте к 100 000 хороших комментариев прибавилось 50 000 нехороших, которые каким-то образом прошли модерацию и теперь засоряют вам карму?

Отчищаем комментарии от спама

Отчищаем комментарии от спама

Один из вариантов (не забудьте сделать бэкап базы!):

запросы в консоле mysql для вашей базы :

mysql> TRUNCATE TABLE `wp_comments`;
mysql> TRUNCATE TABLE `wp_commentmeta`;

или в phpMyAdmin, удалят ВСЕ комментарии и плохие и хорошие.

Можно установить плагин с такой функциональностью, но протестированные мною Delete All Comments, Remove All Comments и Delete All Comments Easily не удаляют связанные записи в таблице wp_commentmeta

 

Другой вариант:

Удалять комментарии только по какому-либо критерию, например IP автора: поле comment_author_IP в таблице wp_comments. Нужно сделать выборку из этой таблицы, сохранив ID комментария, чтобы удалить связанные с ним записи в таблице wp_commentmeta. Например, можно сделать такие запросы к бд:

mysql> DELETE FROM wp_commentmeta WHERE comment_id IN (SELECT comment_ID FROM wp_comments WHERE comment_author_IP = '95.181.179.91');

mysql> DELETE FROM wp_comments WHERE comment_author_IP = '95.181.179.91';

А если мы хотим указать только часть IP, то получатся примерно такие запросы:

mysql> DELETE FROM wp_commentmeta WHERE comment_id IN (SELECT comment_ID FROM wp_comments WHERE comment_author_IP LIKE '95.181.%');

mysql> DELETE FROM wp_comments WHERE comment_author_IP LIKE '95.181.%';

Плагин с похожим функционалом не нашел, может кто подскажет в комментариях?

Ну а чтобы комментарии на вашем сайте не страдали больше от таких явлений как спам, установите самый популярный анти-спам плагин Akismet , даже с бесплатной подпиской он очень эффективен, достаточно только зарегистрироваться указав e-mail.

Поблагодарить:

Оставьте комментарий

Ваш e-mail не будет опубликован.