Mặc dù wordpress đã xây dựng một hệ thống quản lý bình luận tương đối hiệu quả, nhưng với một số công việc giống như xóa hàng loạt các bình luận thì việc sử dụng SQL dễ dàng và nhanh chóng hơn hẳn.
Trong bài viết này, tôi sẽ trình bày vài câu lệnh truy vấn SQL khá hữu ích để quản lý bình luận dễ dàng hơn.
Một vài ghi chú
- Hãy sao lưu cơ sở dữ liệu (CSDL) của bạn trước khi thử nghiệm những câu lệnh SQL dưới đây.
- Đừng quên đổi table prefix wp_ mặc định bằng table prefix trong CSDL của bạn
Xóa tất cả bình luận được gắn mác spam
Khi bạn có hơn 100.000 bình luận gắn mác spam trong hệ thống của bạn, sử dụng nút Empty spam của wordpress sẽ bị lỗi vì PHP sử dụng quá nhiều RAM để xử lý. Để khắc phục điều này, đơn giản chỉ bằng câu lệnh SQL để xóa tất cả bình luận spam
DELETE from wp_comments WHERE comment_approved = 'spam'
Xóa tất cả bình luận giữa 2 mốc thời gian
Bạn bị spammer tấn công trong một khoảng thời gian xác định? Câu lệnh SQL sẽ xóa tất cả bình luận giữa 2 mốc thời gian
DELETE FROM wp_comments
WHERE comment_date > '2014-03-15 20:03:00'
AND comment_date <= '2014-03-22 20:03:00'
Xóa tất cả bình luận chờ duyệt
Nếu phần quản lý bình luận chờ duyệt (pending comment) của bạn bị choáng ngợp bởi 99% bình luận spam và bạn không muốn ngồi duyệt từng bình luận một, câu lệnh SQL này sẽ xóa toàn bộ bình luận chờ duyệt ngay lập tức
DELETE FROM wp_comments WHERE comment_approved = '0'
Vô hiệu hóa bình luận tất cả các post
Bạn muốn tắt bình luận cho tất cả các post? Thay vì tắt bình luận cho từng post một, tại sao không dùng SQL nhanh chóng và tiện lợi?
UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE comment_status = 'open'
Vô hiệu hóa bình luận ở những bài đăng cũ
Để hạn chế spam, sao không tắt bình luận ở những bài đã đăng khá lâu? Câu lệnh SQL này sẽ tự động tắt bình luận ở tất cả các bài được đăng trước ngày 1 tháng 1 năm 2014
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2014-01-01' AND post_status = 'publish'
Tìm và thay thế từ trong bình luận
Nếu bạn muốn thay thế một số từ đặc biệt bằng các từ khác trong tất cả bình luận. Sử dụng câu lệnh dưới đây với function REPLACE của MySQL
UPDATE wp_comments SET `comment_content` = REPLACE (`comment_content`, 'Từ_Gốc', 'Từ_Cần_Thay')
Chỉ bật bình luận cho thành viên
UPDATE wp_posts SET comment_status = 'registered_only'
Tổng hợp từ nhiều nguồn.