No se si te habrá pasado, pero a mi si. Un día recibes un correo de un visitante a tu web que te dice que desde que dejó un comentario en tu web no hace más que recibir spam y, lo más sorprendente de todo, ¡que te va a demandar a ti como no deje de recibir spam!. Lo gordo del tema es que en ocasiones había sido el mismo el que había dejado su email en un comentario al estilo de …
KoM0 se haze xto???
ASSIASSS DE ANTEBRASSO
mi email es [email protected]
Si, pasa, es raro, para darle un capón al tío por cenutrio, pero pasar pasa.
Pero bueno, si te quieres librar de este tipo de inconvenientes, y no so lo por berracos como el del ejemplo imaginario, pues los spammers escanean código de las webs y también encontrarán emails no tan obvios como el de arriba, se puede hacer muy fácil, ocultando las direcciones de email.
Para conseguirlo he encontrado un truco muy majete en wprecipes, que se trata de añadir este código a tu plugin de funciones:
//Ocultar direcciones de email function security_remove_emails($content) { $pattern = '/([a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})/i'; $fix = preg_replace_callback($pattern, "security_remove_emails_logic", $content); return $fix; } function security_remove_emails_logic($result) { return antispambot($result[1]); } add_filter( 'the_content', 'flex_remove_emails', 20 ); add_filter( 'widget_text', 'flex_remove_emails', 20 );
Lo que hace el «coso» este es buscar cualquier cadena de caracteres del tipo «[email protected]» y lo oculta, ya esté en el contenido o – muy interesante – en el texto de widgets.
Así que ya sabes como librarte de esa plaga de los spammers que andan a la caza de direcciones de email.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
No me funciona :S
Parse error: syntax error, unexpected ‘;’, expecting T_PAAMAYIM_NEKUDOTAYIM in Funciones.php on line 18
Cierto, a mi me ocurre exactamente lo mismo. De todas formas si te interesa el plugin «Email Address Encoder» hace exactamente lo mismo.. :/
Yo particularmente me simplifico todo usando el plugin PHPEnkoder basado en la excelente herramienta desarrollada por Hivelogic y que uso desde hace varios años para ofuscar distintos tipos de código HTML.
Hola
Hay un error de sintaxis en la linea 5 aunque no se cual.
Salu2
Buenas Fernando,
Lo primero gracias por tu blog. Mi pregunta es, tú aquí estás asumiendo que no se debe mostrar bajo ningún concepto un email en una web si no quieres que te atiborrien la bandeja de entrada de SPAM, verdad? El caso es que la mayoría de las webs muestran un email de contacto. Y lo hacen por una razón mucha gente prefiere escribir un email desde su cliente de email favorito a usar el típico formulario en tu web. Por eso se dan las dos opciones, usar el formulario de contacto y mostrar el email.
Cómo se soluciona entonces el problema del SPAM masivo a una cuenta de email que sí se muestra en una web?
Gracias
Bueno, puedes usar el ofuscador de email: https://ayudawp.com/evitando-spam-por-email-con-el-ofuscador-de-wordpress/
Y, en cualquier caso, siempre es mejor no perderte un posible cliente aunque tengas que echarle un rato con el filtro de spam de tu cliente de correo ¿no?
Hola, ¿alguien me puede decir al es el «plugin de funciones»? Gracias!
El código está mal, el correcto sería así:
function security_remove_emails($content) {
$pattern = ‘/([a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})/i’;
$fix = preg_replace_callback($pattern, «security_remove_emails_logic», $content);
return $fix;
}
function security_remove_emails_logic($result) {
return antispambot($result[1]);
}
add_filter( ‘the_content’, ‘security_remove_emails’, 20 ); //ocultar correo en posts
add_filter( ‘comment_text’, ‘security_remove_emails’, 20 ); //ocultar correo en comentarios
add_filter( ‘widget_text’, ‘security_remove_emails’, 20 ); //ocultar correo en widgets