MỤC LỤC BÀI VIẾT
Chống spam bình luận trên WordPress hiệu quả với code chặn bình luận chứa liên kết
Sử dụng WordPress chúng ta thường gặp phải việc suốt ngày dính spam bình luận rác, có nhiều cách để bạn có thể hạn chế điều này như thêm captcha vào form bình luận, cài đặt một số plugin lọc các bình luận đáng ngờ, nói chung các cách này đều giúp cho trang web chống được spam rất hiệu quả. Tuy nhiên ở bài viết này mình xin chia sẻ một đoạn code chức năng lọc các bình luận spam mà không cần cài đặt các plugin phức tạp.
Cách thức hoạt động của code
Như chúng ta đã biết, thông thường việc spam bình luận là một dạng quảng cáo bằng hệ thống tự động, các quảng cáo này thường là những nội dung giới thiệu dịch vụ, giới thiệu sản phẩm..vv nhưng tất cả chúng đều có điểm chung là thường kèm theo một đường link để chúng ta có thể truy cập tới trang mà chúng muốn quảng cáo, từ điểm này code của mình có thể dựa vào đó để lọc ra những bình luận có chứa các liên kết hoặc có dạng liên kết để nhằm loại bỏ nó ngay từ ban đầu.
Nhược điểm
Với cách làm này sẽ không áp dụng được với những blog cho phép thành viên có thể đăng liên kết về trang web của họ, khắc phục bằng cách bạn có thể thêm vào các nhóm khác nhau để cho phép người dùng đăng nhập hoặc nằm trong một nhóm nào đó thì có thể bình luận liên kết thoải mái.
Code xóa bình luận nếu chứa các liên kết hoặc dạng liên kết
1 2 3 4 5 6 7 8 9 10 11 12 | function fox_auto_delete_comment_with_link( $approved, $commentdata ) { // admin ok if ( current_user_can( 'manage_options' ) ) { return $approved; } $comment_content = $commentdata['comment_content']; if ( preg_match( '/<a\s/i', $comment_content ) || strpos( $comment_content, 'http://' ) !== false || strpos( $comment_content, 'https://' ) !== false ) { wp_delete_comment( $commentdata['comment_ID'] ); return false; } return $approved; } |
Sao chép toàn bộ code ở trên dán vào file functions.php trong thư mục theme mà bạn đang sử dụng là xong.