Pobierz: Forget Spam Comment Plugin
Jest to darmowa wtyczka antyspamowa wyłącznie dla domyślnego systemu komentowania WordPress.
Jak to działa
Alternatywnie, dla zaawansowanych użytkowników, poniżej znajduje się metoda ręczna
Domyślny system komentowania WordPressa ma dwa poważne problemy.
- Przyciąganie spamowych komentarzy.
- Nie wysyłanie follow-up email do autora komentarza (Omówi za jakiś czas).
Porozmawiajmy o jego rozwiązaniu.
Zapobieganie spamowi w komentarzach
Zamiast bezpośrednio pozwalać każdemu na wykonanie żądania POST w /wp-comments-post.php
możemy dodać pewną logikę, aby zapobiec spamowi w komentarzach w 100%.
Krok 1. Ograniczenie ścieżki żądania komentarza POST przez parametr zapytania
Podzielę się trzema sposobami, wykorzystaj jedną metodę.
Apache
- Yoast > Idź do Tools > File Editor
- RankMath > Idź do General Settings > Edit .htaccess
- FTP/SSH > Check
/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>
Jeśli korzystasz z LiteSpeed, obsługuje on również plik .htaccess. Po wdrożeniu musisz zrestartować.
NGINX
location = /wp-comments-post.php {
if ($query_string !~ "45jpfAY9RcNeFP") {
return 404;
}
}
Cloudflare

- Zaloguj się do Cloudflare Dashboard
- Idź do Firewall > Firewall Rules
- Utwórz nową regułę firewall z poniższym wyrażeniem
Field | Operator | Value | |
URI | contains | wp-comments-post.php | And |
URL Query String | does not equal | 45jpfAY9RcNeFP |
- Wybierz akcję: Blokuj
Na końcu zobaczysz wyrażenie
(http.request.uri contains "wp-comments-post.php" and http.request.uri.query ne "45jpfAY9RcNeFP")
Krok 2. Popraw adres URL Comment POST w zdarzeniu Scroll
- Dodaj poniższą funkcję używając Code Snippets plugin lub theme functions.php
- Upewnij się, że używasz poprawnej domeny i ID formularza.
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);
Alternatywnie, jeśli jesteś użytkownikiem motywu Premium GeneratePress, możesz dodać powyższą część JS bezpośrednio za pomocą modułu 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>
- Dodaj nowy hook
- New Hook Title: Zmień adres URL komentarza w locie
- Hook: WP Footer
- Priority: 99
- Położenie: Posty – Wszystkie posty
- Opublikuj
Jak sprawdzić, czy działa?
- Generalnie WordPress zwraca 405 odpowiedzi dla żądania GET w /wp-comments-post.php
- Ale po powyższych ustawieniach, powinieneś zobaczyć Access Denied.
- URL powinien ładować się tylko w obecności specjalnego Query String
45jpfAY9RcNeFP
, który dodaliśmy w celu zapobiegania spamowi w komentarzach. Możesz zmienić ten ciąg zapytania na coś innego w całej powyższej konfiguracji. - Kod źródłowy zwykle pokazuje ścieżkę
wp-comments-post.php
, ale jeśli sprawdzisz element po przewinięciu, zauważysz dodany ciąg zapytania.
Wynik #1: Brak Spamu

Rezultat #2: Blokowanie spamerów

Bonusowa wskazówka, która sprawi, że domyślny system komentarzy będzie jeszcze lepszy
- Domyślnie system komentowania WordPress nie wysyła wiadomości e-mail z odpowiedzią do autora komentarza. Aby naprawić ten problem, możesz użyć wtyczki Comment Reply Email Notification autorstwa Arno Welzel.
Jeśli podobają Ci się te informacje, przekaż je swoim znajomym. 🙏
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!😊