Ahora olvídate de los comentarios spam en WordPress

Descargar: Olvídate del plugin de comentarios spam

Se trata de un plugin antispam gratuito exclusivo para el sistema de comentarios por defecto de WordPress.

Cómo funciona

Alternativamente, para los usuarios avanzados, el siguiente es el método manual

El sistema de comentarios por defecto de WordPress tiene dos grandes problemas.

  1. Atraer comentarios de spam.
  2. No se ha enviado un correo electrónico de seguimiento al autor del comentario (se discutirá en un momento).

Hablemos de sus soluciones.

Cómo evitar los comentarios basura

En lugar de permitir directamente que cualquiera haga una petición POST en /wp-comments-post.php podemos añadir algo de lógica para evitar los comentarios spam en un 100%.

Paso 1. Restringir la ruta de la solicitud POST de comentarios sobre el parámetro de consulta

Voy a compartir tres maneras, utilice un método.

Apache

  • Yoast > Ir a Herramientas > Editor de archivos
  • RankMath > Ir a la configuración general > Editar .htaccess
  • FTP/SSH > Comprobar /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>

Si estás en LiteSpeed, también soporta el archivo .htaccess. Usted debe reiniciar después de la implementación.

NGINX

location = /wp-comments-post.php {

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

Cloudflare

prevent spam comments
  • Acceder a Cloudflare Dashboard
  • Vaya a Firewall > Reglas de Firewall
  • Cree una nueva regla de firewall con la siguiente expresión
CampoOperadorValor
URIcontainswp-comments-post.phpY
URL Query Stringdoes not equal45jpfAY9RcNeFP
  • Elija la acción: Bloque

Al final, verás la expresión

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

Paso 2. Corregir la URL POST del comentario en el evento Scroll

  • Agregue la siguiente función usando el plugin Code Snippets o el tema functions.php
  • Asegúrese de utilizar el dominio correcto y el ID del formulario.
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);

Alternativamente, si eres un usuario del tema GeneratePress Premium puedes añadir la parte JS de arriba directamente usando el módulo 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>
  • Añadir un nuevo gancho
  • Nuevo título del gancho: Cambiar la URL de los comentarios sobre la marcha
  • Hook: WP Footer
  • Prioridad: 99
  • Ubicación: Puestos – Todos los puestos
  • Publicar

¿Cómo comprobar si funciona?

  • Por lo general, WordPress devuelve una respuesta 405 para la solicitud GET en /wp-comments-post.php
  • Pero después de la configuración anterior, debería ver el acceso denegado.
  • Además, la URL sólo debería cargarse en presencia de la cadena de consulta especial 45jpfAY9RcNeFP que hemos añadido para evitar los comentarios de spam. Usted puede cambiar esta cadena de consulta a otra cosa en toda la configuración anterior.
  • El código fuente mostrará típicamente la ruta wp-comments-post.php pero si inspecciona el elemento después del scroll notará una cadena de consulta añadida.

Resultado #1: No hay spam

no spam

Result #2: Spammers getting blocked

log

Consejo adicional para mejorar el sistema de comentarios por defecto

  • Por defecto, el sistema de comentarios de WordPress no envía un correo electrónico de seguimiento al autor del comentario. Para solucionar este problema, puedes utilizar el plugin Comment Reply Email Notification de Arno Welzel.

Si te gusta esta información, por favor pasa a tus amigos. 🙏

Deja un comentario