Cách xóa Nhận xét Spam trong mục "Được phê duyệt" nhanh và có chọn lọc

Như các bạn thấy, hình dưới là kết quả do một thời gian tôi quên kích hoạt các công cụ chống thư rác. Rất rất nhiều Spam đã được tự động phê duyệt.

Với số lượng Spam như trên, Tôi nghĩ mình sẽ không ngồi xóa thủ công, tại vì mỗi lần xóa không được quá nhiều.
Với những Nhận xét nằm trong thư mục Spam, Đang chờ, Thùng rác thì có rất nhiều plugin hỗ trợ xóa trong vòng 1 nốt nhạc hoặc xóa tất cả không chừa lại gì. Oái oăm thay spam của mình hầu hết nằm trong thư mục “Được phê duyệt” và có cả những Nhận xét hợp lệ mà mình không muốn xóa.
Vậy là hành trình tìm Plugin bắt đầu.

Tiêu chí của mình là:

  • Lọc được nhận xét theo tên tác giả, email, hoặc IP
  • Có thể xóa hàng loạt

Sau một hồi tìm tòi thì thấy chỉ có WP Bulk Delete – WordPress plugin | WordPress.org là phù hợp nhất nhưng để lọc được thì phải sử dụng phiên bản WP Bulk Delete Pro.
Với trường hợp trên sử dụng Plugin không khả thi lắm, vậy nên tôi quyết định sử dụng phương pháp xóa trong Phpmyadmin. Vâng, kết quả như mong đợi.
Dưới đây là cách làm của tôi các bạn có thể tham khảo

:warning: Sao lưu dữ liệu của bạn trước khi thực hiện.

Xác định điểm chung của nhận xét Spam

  • Có chứa link http://https://
  • Có chứa email, ip mà bạn có thể xác định đó là spam…
  • Có chứa một số từ ngữ không phù hợp

Cách xóa Nhận xét Spam

Truy cập vào Phpmyadmin, chọn database của bạn. Chú ý tới 2 bảng wp_commentmetawp_comments

image

Click vào bảng wp_comments, để tham khảo thông tin. Sau đó nhấn lại vào tab SQL

Ví dụ, mình muốn xóa tất cả các comments có chứa link http:// thì sẽ nhập như sau (xóa bỏ SELECT * FROM wp_comments WHERE 1):

DELETE FROM `wp_comments` WHERE `comment_content` LIKE '%http://%'

Và nhấn Thực hiện

image

Lệnh trên sẽ xóa tất cả những nhận xét mà trong nội dung có chứa http://. Bạn có thể thay thế http:// bằng bất kỳ từ gì bạn muốn.
Bạn cũng có thể thay thế trường sau WHERE bằng các trường cột bên phải.

Ngoài ra,

Để xóa tất cả các bình luận đang chờ xử lý:

DELETE FROM `wp_comments` WHERE `comment_approved` = '0'

Để xóa tất cả các bình luận spam:

DELETE FROM `wp_comments` WHERE `comment_approved` = 'spam'

Khi xóa dữ liệu trong wp_comments, thì dữ liệu nhận xét trong wp_commentmeta sẽ trở thành dữ liệu mồ côi, bạn nên xóa nó.

DELETE FROM `wp_commentmeta` WHERE `comment_id` NOT IN (SELECT `comment_id` FROM `wp_comments`)

Hoặc sử dụng Plugin Advanced Database Cleaner – WordPress plugin | WordPress.org

Khi số lượng Spam giảm xuống tới con số mà bạn có thể kiểm soát, bạn có thể quay lại bảng điều khiển và xóa thủ công chúng.