Oferta SiteGround Black Friday

Cómo ocultar los emails a los spammers en WordPress

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.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 1

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

8 comentarios en “Cómo ocultar los emails a los spammers en WordPress”

  1. No me funciona :S
    Parse error: syntax error, unexpected ‘;’, expecting T_PAAMAYIM_NEKUDOTAYIM in Funciones.php on line 18

    1. Cierto, a mi me ocurre exactamente lo mismo. De todas formas si te interesa el plugin «Email Address Encoder» hace exactamente lo mismo.. :/

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

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

Deja un comentario

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

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio