
Tại sao cần chống spam bình luận trong WordPress?
Nếu bạn đang quản lý một website WordPress, chắc hẳn bạn đã từng gặp tình trạng bị spam bình luận với các nội dung chứa:
- Liên kết quảng cáo ẩn (
http
,www
, hoặc tên miền.com
) - Từ ngữ nhạy cảm như thuốc kích dục, nội dung chính trị, cờ bạc…
- Spam từ bot tự động, bình luận vô nghĩa
- Số điện thoại, mã code lạ hoặc bình luận chứa ký tự bất thường
Những nội dung này không chỉ làm xấu giao diện website, mà còn ảnh hưởng nghiêm trọng đến SEO, gây giảm uy tín website với Google và người dùng.
Bạn hoàn toàn có thể chống spam bình luận WordPress bằng cách chèn đoạn mã PHP chuyên dụng vào file functions.php
của theme.
Code chống spam bình luận WordPress (mới nhất 2025)
Dưới đây là đoạn code tự động chặn bình luận chứa tên miền, từ khóa nhạy cảm, số điện thoại, bot spam:
// Chặn spam bình luận nâng cao
add_filter('preprocess_comment', 'muathemewpgiare_advanced_comment_filter');
function muathemewpgiare_advanced_comment_filter($commentdata) {
$content = strtolower($commentdata['comment_content']);
$bad_words = array('hack','cờ bạc');
foreach ($bad_words as $word) {
if (stripos($content, $word) !== false) {
wp_die('Bình luận của bạn chứa nội dung không phù hợp.');
}
}
if (preg_match('/([a-z0-9\-]+\.)+(com|net|org|vn|xyz|shop|store|link|top)\b/i', $content)) {
wp_die('Bình luận không được chứa tên miền.');
}
if (preg_match('/\d{10,}/', $content)) {
wp_die('Bình luận của bạn có vẻ chứa số điện thoại hoặc mã spam.');
}
if (preg_match('/[^\p{L}\p{N}\s.,!?@#\$%\^\&\*\(\)\-\+=\[\]\{\}\'\":;\/\\\\<>]+/u', $content)) {
wp_die('Bình luận của bạn có vẻ không hợp lệ.');
}
if (!empty($_POST['honeypot_check'])) {
wp_die('Phát hiện spam! Vui lòng thử lại sau.');
}
return $commentdata;
}
add_action('comment_form', 'muathemewpgiare_add_honeypot_field');
function muathemewpgiare_add_honeypot_field() {
echo '<p style="display:none;"><label>Không điền vào đây<input type="text" name="honeypot_check" value=""></label></p>';
}
add_action('init', 'muathemewpgiare_limit_comment_speed');
function muathemewpgiare_limit_comment_speed() {
if (is_user_logged_in()) return;
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['comment'])) {
$last_time = isset($_COOKIE['mtwg_last_comment']) ? intval($_COOKIE['mtwg_last_comment']) : 0;
$now = time();
if ($now - $last_time < 45) {
wp_die('Bạn đang bình luận quá nhanh. Vui lòng chờ ít nhất 45 giây.');
}
setcookie('mtwg_last_comment', $now, time() + 3600, COOKIEPATH, COOKIE_DOMAIN);
}
}
Lợi ích khi dùng giải pháp này
- Tăng bảo mật website khỏi spam tự động.
- Tăng điểm SEO khi không có bình luận rác.
- Tăng trải nghiệm người dùng với bình luận sạch, chất lượng.
- Không phụ thuộc vào plugin nặng nề.
Lưu ý:
- Nên cập nhật từ khóa nhạy cảm theo chủ đề website.
- Có thể kết hợp plugin như Akismet, Antispam Bee nếu cần kiểm soát mạnh hơn.
- Nếu cần nâng cấp, bạn có thể lưu log spam hoặc tạo giao diện quản lý từ khóa trong admin.