Inserire la propria e-mail su un sito in WordPress è sicuramente qualcosa che potrebbe essere utile qualora non disponeste di un form per i contatti. In tutti gli altri casi, secondo il mio modesto parere, è il modo migliore per rendere più facile la vita agli spammer. Tuttavia, WordPress fornisce alcuni strumenti utili per difenderci da questo fastidioso fenomeno. Vediamo quali.
La funzione antispambot()
Il primo strumento è la funzione antispambot(). Esempio:
<?php echo antispambot(get_the_author_email()); ?>
La documentazione di WordPress afferma che:
The function
antispambot()
above parses the e-mail address passed byget_the_author_email()
(this is the same asthe_author_email()
, except it returns rather than displays the author’s e-mail address). Use of the echo command displays the output ofantispambot()
. An interesting feature is it encodes only portions of an address, and does so randomly so the letters encoded are different each time the page loads, adding a little more firepower to the spam protection arsenal.
Filtri sul contenuto
Il secondo strumento, più complesso, prevede l'applicazione dei filtri di WordPress (tramite add_filter()
) al contenuto di WordPress (the_content
). In sostanza si tratta di scrivere una funzione che converta una stringa di questo tipo:
<a href="mailto:person@example.com">person@example.com</a>
in questo formato:
<a href="mailto:pers
on@exa
mple.com" title="mailto:p
erson@ex
ample.com">
person@exam
ple.com</a>
Non sono affatto convinto della reale efficacia di metodi del genere, perchè gli spambot potrebbero essere stati programmati per effettuare l'operazione inversa. Infatti si tratta semplicemente di una semplice sostituzione di stringhe:
add_filter('the_content', 'obfuscate_email');
function obfuscate($matches) {
return substr( chunk_split( bin2hex( " $matches[0]" ), 2, ";&#x" ), 3, -3 );
}
function obfuscate_email($content) {
return preg_replace_callback('#(([a-z0-9\-_\.]+?)@([^\s,{}\(\)\[\]]+\.[^\s.,{}\(\)\[\]]+))#iesU', 'obfuscate', $content);
}
Ad ogni modo, vi prego di usare un form per i contatti per evitare sorprese non sempre piacevoli.