WordPress имеет очень удобный и дружелюбный интерфейс управления комментариями. Но порой его бывает недостаточно, особенно для решения задач массового характера. В этих случаях намного проще и быстрее пользоваться средствами SQL.
Новичкам напомню
Управлять вашей базой данных проще и удобнее всего с помощью приложения PHPMyAdmin (PMA), которое имеется практически на любом, даже самом захудалом виртуальном хостинге.
phpMyAdmin — веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. phpMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных.
Самое главное
- Перед выполнением любого запроса обязательно создайте резервную копию вашей БД.
- Если в вашей БД используются отличные от дефолтного префиксы, не забудьте изменить их в запросах.
Итак, поехали!
Удалить все комментарии с меткой СПАМ
Если в очереди спама вашего WordPress имеется более ста тысяч комментариев, удаляя их с помощью стандартной функции удаления спама, можно вызвать ошибку памяти PHP. Чтобы этого избежать, используйте простой SQL-запрос массового удаления спама.
DELETE from wp_comments WHERE comment_approved = 'spam'
Удалить все комментарии между двумя датами
Пригодится после спам-атаки на ваш сайт. С помощью запроса ниже вы сможете удалить все комментарии за какой-то определенный период времени. Например, с 1 марта 2015 по 14 марта 2015 года. Для более точного запроса, можно также использовать время публикации.
DELETE FROM wp_comments WHERE comment_date > '2015-03-01 00:00:00' AND comment_date <= '2015-03-14 00:00:00'
Удалить все ожидающие комментарии
Если ваши ожидающие комментарии — это преимущественно спам и у вас совсем нет желания заниматься их модерацией, вы можете с помощью всего лишь одного SQL-запроса мгновенно их все удалить.
DELETE FROM wp_comments WHERE comment_approved = '0'
Запрет комментирования для всех публикаций
С помощью этого запроса, вы можете запретить возможность комментирования для всех публикаций блога сразу.
UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE comment_status = 'open'
Запрет комментирования старых публикаций
Как известно, ограничив комментирование для старых публикаци можно существенно снизить количества спама. А быстро запретить комментирование для публикаций старше какой-то определенной даты можно с помощью SQL-запроса. Например, для всех публикаций, опубликованных до 1 марта 2015 года.
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2015-03-01' AND post_status = 'publish'
Удалить комментарии с определенным URL
Иногда спам настолько завуалирован, что детектируется лишь спустя некоторое время по одинаковому URL. Чтобы быстро все почистить вам поможет небольшой SQL-запрос.
DELETE from wp_comments WHERE comment_author_url LIKE "%nastyspamurl%";
Поиск и замена текста комментария
Может быть вам когда-нибудь потребуется заменить в комментариях какое-нибудь слово. Например, вы решите разом избавиться от мата в комментариях. Благодаря функции Replace, делается это очень просто.
UPDATE wp_comments SET `comment_content` = REPLACE (`comment_content`, 'Старый текст', 'Новый текст')
Разрешить комментирование только зарегистрированным пользователям
Пожалуй, самый эффективный способ снижения количества получаемого спама в комментариях — это запрет комментирования не зарегистрированным пользователям. А сделать это быстро вам поможет SQL-запрос.
UPDATE wp_posts SET comment_status = 'registered_only'
В заключении хотелось бы сказать, что с помощью запросов SQL вы можете не только массово управлять комментариями, но и напрямую воздействовать на работу вашего WordPress. Но делать это нужно крайне внимательно и с глубочайшим пониманием сути. Поэтому, еще раз повторюсь, будьте предельно внимательны и не забывайте про бэкапы БД.