WordPress Hosting

Cómo ocultar los emails a los spammers en WordPress (actualizado)

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 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._%+-]+@[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.

Compartir en redes
Resumir con IA

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

¡Haz clic en las estrellas para valorarlo!

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

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

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



Sobre el autor

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

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

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

  4. Sara Fernández

    Hola, ¿alguien me puede decir al es el «plugin de funciones»? Gracias!

  5. El código está mal, el correcto sería así:

    function security_remove_emails($content) {
    $pattern = ‘/([a-zA-Z0-9._%+-]+@[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

Los comentarios están cerrados.

Scroll al inicio