Λήψη: Forget Spam Comment Plugin
Πρόκειται για ένα δωρεάν πρόσθετο κατά της ανεπιθύμητης αλληλογραφίας αποκλειστικά για το προεπιλεγμένο σύστημα σχολιασμού του WordPress.
Πώς λειτουργεί
Εναλλακτικά, για προχωρημένους χρήστες ακολουθεί η χειροκίνητη μέθοδος
Το προεπιλεγμένο σύστημα σχολιασμού του WordPress έχει δύο σημαντικά προβλήματα.
- Προσέλκυση ανεπιθύμητων σχολίων.
- Δεν στέλνω μήνυμα ηλεκτρονικού ταχυδρομείου στον συγγραφέα του σχολίου (θα το συζητήσω σε λίγο).
Ας μιλήσουμε για τις λύσεις του.
Αποτροπή Σχολίων Spam
Αντί να επιτρέπουμε απευθείας σε οποιονδήποτε να κάνει αίτηση POST στο /wp-comments-post.php
, μπορούμε να προσθέσουμε κάποια λογική για να αποτρέψουμε τα spam σχόλια κατά 100%.
Βήμα 1. Περιορισμός της διαδρομής του αιτήματος Comment POST μέσω της παραμέτρου Query
Θα μοιραστώ τρεις τρόπους, χρησιμοποιήστε μία μέθοδο.
Apache
- Yoast > Μεταβείτε στα Εργαλεία > Επεξεργαστής αρχείων
- RankMath > Μεταβείτε στις Γενικές ρυθμίσεις > Επεξεργασία .htaccess
- FTP/SSH > Ελέγξτε το
/var/www/html
# If Query string doesn't matches return 404
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} .wp-comments-post\.php
# You may change 45jpfAY9RcNeFP to something else
RewriteCond %{QUERY_STRING} !^45jpfAY9RcNeFP
RewriteRule (.*) - [R=404,L]
</IfModule>
Αν χρησιμοποιείτε LiteSpeed, υποστηρίζει επίσης το αρχείο .htaccess. Πρέπει να κάνετε επανεκκίνηση μετά την εφαρμογή.
NGINX
location = /wp-comments-post.php {
if ($query_string !~ "45jpfAY9RcNeFP") {
return 404;
}
}
Cloudflare
- Σύνδεση για να Cloudflare Dashboard
- Πηγαίνετε στο Τείχος προστασίας > Κανόνες τείχους προστασίας
- Δημιουργήστε έναν νέο κανόνα τείχους προστασίας με την παρακάτω έκφραση
Field | Operator | Value | |
URI | contains | wp-comments-post.php | And |
URL Query String | does not equal | 45jpfAY9RcNeFP |
- Επιλέξτε Δράση: Μπλόκο
Στο τέλος, θα δείτε την έκφραση
(http.request.uri contains "wp-comments-post.php" and http.request.uri.query ne "45jpfAY9RcNeFP")
Βήμα 2. Διόρθωση της διεύθυνσης URL του Comment POST στο συμβάν Scroll
- Προσθέστε την παρακάτω λειτουργία χρησιμοποιώντας το πρόσθετο Code Snippets ή το θέμα functions.php
- Βεβαιωθείτε ότι χρησιμοποιείτε το σωστό domain και το σωστό αναγνωριστικό φόρμας.
function correct_comment_url_on_scroll() {
// Check if Comment is enabled
if(comments_open()) echo '<script>
let commentForm = document.querySelector("#commentform, #ast-commentform, #ht-commentform");
// Load new comment path on the scroll event
document.onscroll = function () {
commentForm.action = "https://www.example.com/wp-comments-post.php?45jpfAY9RcNeFP";
};
</script>';
}
add_action('wp_footer', 'correct_comment_url_on_scroll', 99);
Εναλλακτικά, αν είστε χρήστης του θέματος GeneratePress Premium μπορείτε να προσθέσετε το παραπάνω τμήμα JS απευθείας χρησιμοποιώντας την ενότητα Elements.
<script>
let commentForm = document.querySelector("#commentform");
commentForm.action = "https://www.example.com/wp-comments-post.php";
// Load new comment path on the scroll event
document.onscroll = function () {
commentForm.action = "https://www.example.com/wp-comments-post.php?45jpfAY9RcNeFP";
};
</script>
- Προσθέστε ένα νέο hook
- Νέος Hook Τίτλος: Αλλαγή URL σχολίου εν κινήσει
- Hook: WP Footer
- Priority: 99
- Τοποθεσία: Posts – Όλες οι θέσεις
- Δημοσίευση
Πώς να ελέγξετε αν λειτουργεί;
- Γενικά το WordPress επιστρέφει απάντηση 405 για το αίτημα GET στο /wp-comments-post.php
- Αλλά μετά την παραπάνω ρύθμιση, θα πρέπει να δείτε Access Denied.
- Και, η διεύθυνση URL θα πρέπει να φορτώνεται μόνο με την παρουσία της ειδικής συμβολοσειράς ερώτησης
45jpfAY9RcNeFP
που προσθέσαμε για την αποτροπή spam σχολίων. Μπορείτε να αλλάξετε αυτό το query string σε κάτι άλλο σε όλες τις παραπάνω ρυθμίσεις. - Ο πηγαίος κώδικας θα δείξει συνήθως τη διαδρομή
wp-comments-post.php
, αλλά αν επιθεωρήσετε το στοιχείο μετά την κύλιση θα παρατηρήσετε ότι προστέθηκε μια συμβολοσειρά ερωτήματος.
Αποτέλεσμα #1: Χωρίς Spam
Αποτέλεσμα #2: Οι Spammers μπλοκάρονται
Συμβουλή μπόνους για να κάνετε το προεπιλεγμένο σύστημα σχολίων ακόμα καλύτερο
- Από προεπιλογή, το σύστημα σχολιασμού του WordPress δεν στέλνει e-mail παρακολούθησης στον συντάκτη του σχολίου. Για να διορθώσετε αυτό το πρόβλημα, μπορείτε να χρησιμοποιήσετε το πρόσθετο Comment Reply Email Notification του Arno Welzel.
Αν σας αρέσουν αυτές οι πληροφορίες, παρακαλούμε να τις προωθήσετε στους φίλους σας. 🙏
Thank you so much Sir Gulshan Kumar! I really appreciate your guide, and this has saved me tons of headache. Implemented via Cloudflare WAF plus Generatepress Elements Module.
Glad to hear. Thank you!
By the way, how do you know if legit users won’t get blocked? Before this, I’ve been using a CF firewall rules that will blocks or challenge anyone who visit wp-comments-post.php but actually by doing so, legit users also got blocked. How this one different? Is it because of the string “45jpfAY9RcNeFP” that will differentiate which request is from bot and which request is from legit users? If legit users, they should’ve the string, if it’s spam, they don’t have that string. Am I understand it correctly?
You need to implement exactly as per instructions to prevent users from blocking.
Does this plugin / method will stop website from having spam comments once and for all or do we still receive it but it’s automatically filtered from the real comments (like Akismet)?
There is no filter. It just stops spam.
That is so cool! Will try it. Thank youuuuuuuuuuuuuu
You’re welcome!
The best plugin to filter the spam.
Hi Gulshan.
I just wanted to let you know that I’ve been using your plugin for a few weeks now and it is brilliant. Genuine comments still get through but all of the spam, and I mean ALL of it, is filtered out. Excellent job!
Well done and thank you so much for sharing it for free so that hobby bloggers like me can make use of it.
thank you very useful
Hy! I just installed your plugin but Google Console show me tons of errors:
https://prnt.sc/wnhkbd
How can I solve this? Thanks!!
Hi,
I am also using plugin at this blog. It works perfectly fine here.
If you want to me look into this issue, please provide your actual site URL where I can see live.
Thanks!
Brilliant! Thank you so much!
I have question
Where can I get value code like 45jpfAY9RcNeFP
You can use MD5 generator or write any random text. I’d recommend using plugin for set and forget experience.
Good plugins for stopping spam.
I have use this plugin earlier. It is working perfectly.
Wow! This is great. Thanks a lot. Gonna give a try to this trick.
Glad, this is not a spam comment. Just kidding!
Thanks Huzaifa!😊