Eliminar comentarios que contengan palabras prohibidas

Tiempo estimado de lectura: 3 minutos

 

Cómo podemos eliminar comentarios que contengan palabras prohibidas

En esta ocasión aprenderemos a eliminar comentarios que contengan palabras prohibidas establecidas por nosotros mismos.

Ya sabemos que WordPress tiene incluido un filtro de palabras que incluye palabras, url’s e ip’s. El problema de este filtro nativo de WordPress es que, cuando se detecta una palabra prohibida, envía el comentario a spam o lo deja pendiente para moderación, no se elimina.

Si por el contrario, lo que quieres es eliminarlo directamente sin que tu tengas que intervenir, tendrás que usar un código parecido a este que te muestro a continuación.

Código que vamos a utilizar

Este código es un poco complejo, así que te recomiendo copiar y pegar tal como está.

function in_comment_post_like($string, $array) {
foreach($array as $ref) {
if(strstr($string, $ref)) {
return true;
}
}
return false;
}
function drop_bad_comments() {
if (!empty($_POST['comment'])) {
$post_comment_content = $_POST['comment'];
$lower_case_comment = strtolower($_POST['comment']);
$bad_comment_content = array( 'cialis', 'sexy girl', 'lose weigh', '[url=http', '[link=http',
'xanax', 'tramadol', 'russian girls', 'russian brides', 'lorazepam', 'adderall', 'dexadrine',
'no prescription', 'oxycontin', 'without a prescription', 'sex pics', 'dildo',
'online casinos', 'online dating', 'viagra', 'best forex', 'amoxicillin' );
if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
$comment_box_text = wordwrap(trim($post_comment_content), 80, "n ", true);
$txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
fwrite($txtdrop, " --------------n [COMMENT] = " . $post_comment_content . "n --------------n");
fwrite($txtdrop, " [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "n");
fwrite($txtdrop, " [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "n");
fwrite($txtdrop, " [REFERER ] = " . $_SERVER['HTTP_REFERER'] . "n");
fwrite($txtdrop, " [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "n");
fwrite($txtdrop, '--------------**********------------------'."n");
header("HTTP/1.1 406 Not Acceptable");
header("Status: 406 Not Acceptable");
header("Connection: Close");
wp_die( __('bang bang.') );
}
}
}
add_action('init', 'drop_bad_comments');

¿Y cómo puede añadir tus propias palabras prohibidas?, muy sencillo, sólo tienes que añadirlas (o quitarlas), en la línea $bad_comment_content.

Donde colocamos este código

Si eres seguidor del blog ya sabrás que podemos colocarlo en tres sitios distintos:

  • En tu plugin de funciones. Método también recomendable.
  • Insertando el código en el functions.php de tu tema activo. No recomendable a no ser que tengas un child theme.
  • En tu plugin de snippets. Ya sabrás que este es el método que personalmente te aconsejo.

 


¿Te ha servido este artículo?, TOMEMOS UN CAPUCCINO. 0


¿Qué te ha parecido el artículo?. Házmelo saber en los comentarios que tienes más abajo. Estoy deseando leerte.

Por último, si crees que este artículo puede ser interesante para algún amigo tuyo, te agradecería enormemente que lo compartieras con él y con todo el mundo a través de las Redes Sociales.

Puntúa este artículo:
[Total: 0 - Promedio: 0]

Puede que también te interese...

Deja una respuesta

Información básica sobre protección de datos
Responsable: Jose González Bueno.
Finalidad: Moderación y publicación de comentarios.
Destinatarios: No se comunican datos a terceros, salvo por imperativo legal.
Derechos: Tienes derecho a acceder, rectificar, exportar y suprimir tus datos.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad de este sitio. *