Nyt Unohda Spam kommentti WordPress

Lataa: Forget Spam Comment Plugin

Tämä on ilmainen roskapostin vastainen lisäosa, joka on tarkoitettu yksinomaan WordPressin oletuskommentointijärjestelmään.

Miten se toimii

Vaihtoehtoisesti edistyneelle käyttäjälle alla on manuaalinen menetelmä.

WordPressin oletuskommentointijärjestelmässä on kaksi suurta ongelmaa.

  1. Roskapostikommenttien houkutteleminen.
  2. Ei lähetä jatkosähköpostia kommentin kirjoittajalle (keskustellaan hetken kuluttua).

Puhutaanpa sen ratkaisuista.

Roskapostikommenttien estäminen

Sen sijaan, että antaisimme suoraan kenelle tahansa mahdollisuuden tehdä POST-pyynnön osoitteessa /wp-comments-post.php, voimme lisätä logiikan, joka estää roskapostikommentit 100-prosenttisesti.

Vaihe 1. Rajoita kommentin POST-pyynnön polkua kyselyparametrin avulla.

Aion jakaa kolme tapaa, käytä yhtä menetelmää.

Apache

  • Yoast > Go to Tools > File Editor
  • RankMath > Go to 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>

Jos käytät LiteSpeediä, se tukee myös .htaccess-tiedostoa. Sinun on käynnistettävä uudelleen käyttöönoton jälkeen.

NGINX

location = /wp-comments-post.php {

 if ($query_string !~ "45jpfAY9RcNeFP") {
     return 404;
  }
}

Cloudflare

prevent spam comments
  • Login to Cloudflare Dashboard
  • Go to Firewall > Firewall Rules
  • Create a new firewall rule with below expression
FieldOperatorValue
URIcontainswp-comments-post.phpAnd
URL Query Stringdoes not equal45jpfAY9RcNeFP
  • Choose Action: Block

Lopussa näet ilmaisun

(http.request.uri contains "wp-comments-post.php" and http.request.uri.query ne "45jpfAY9RcNeFP")

Vaihe 2. Korjaa kommentin POST URL-osoite Scroll-tapahtumassa

  • Lisää alla oleva toiminto käyttämällä Code Snippets -lisäosaa tai teeman functions.php:tä.
  • Varmista, että käytät oikeaa verkkotunnusta ja lomaketunnusta.
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);

Vaihtoehtoisesti, jos olet GeneratePress Premium -teeman käyttäjä, voit lisätä yllä olevan JS-osan suoraan Elements-moduulin avulla.

<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>
  • Add a new hook
  • New Hook Title: Change Comment URL on the Fly
  • Hook: WP Footer
  • Priority: 99
  • Location: Posts – All posts
  • Publish

How to check if it is working?

  • Generally WordPress return 405 response for GET request at /wp-comments-post.php
  • Mutta edellä mainittujen asetusten jälkeen sinun pitäisi nähdä Access Denied.
  • URL-osoitteen pitäisi latautua vain, jos siinä on erityinen kyselymerkkijono 45jpfAY9RcNeFP, jonka lisäsimme roskapostikommenttien estämiseksi. Voit muuttaa tämän kyselymerkkijonon joksikin muuksi kaikissa edellä mainituissa asetuksissa.
  • The source code will typically show wp-comments-post.php path but if you inspect element after scroll you will notice a query string added.

Result #1: No Spam

no spam

Tulos #2: Roskapostittajat estetään

log

Bonusvinkki, joka tekee oletuskommenttijärjestelmästä vieläkin paremman

  • Oletusarvoisesti WordPressin kommentointijärjestelmä ei lähetä seuranta sähköpostia kommentin kirjoittajalle. Voit korjata tämän ongelman käyttämällä Arno Welzelin tekemää Comment Reply Email Notification -lisäosaa.

Jos pidät näistä tiedoista, välitä ne ystävillesi. 🙏

Jätä kommentti

20 kommenttia artikkeliin ”Nyt Unohda Spam kommentti WordPress”

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

    Vastaa
  2. 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?

    Vastaa
  3. 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)?

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

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

      Vastaa