Teraz zapomnij o komentarzu Spam w WordPressie ­čśÄ

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.

  1. Przyci─ůganie spamowych komentarzy.
  2. 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

prevent spam comments
  • Zaloguj si─Ö do Cloudflare Dashboard
  • Id┼║ do Firewall > Firewall Rules
  • Utw├│rz now─ů regu┼é─Ö firewall z poni┼╝szym wyra┼╝eniem
FieldOperatorValue
URIcontainswp-comments-post.phpAnd
URL Query Stringdoes not equal45jpfAY9RcNeFP
  • 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

no spam

Rezultat #2: Blokowanie spamer├│w

log

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. ­čÖĆ

WordPress List - Subscription Form
Want more? 
Imagine getting Tutorials everyday! THAT's FREAKING AWESOME. Subscribe now. 

Dodaj komentarz

20 komentarzy do “Teraz zapomnij o komentarzu Spam w WordPressie ­čśÄ”

    • 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!

      Odpowiedz
  1. 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.

    Odpowiedz
  2. 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)?

    Odpowiedz
  3. 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?

    Odpowiedz
  4. 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.

    Odpowiedz