Bild: raphaelsilva, Pixabay Lizenz

E-Mail-Adressen in WordPress vor Spambots schützen

Ein nicht unwesentlicher Teil des Traffics auf Webseiten stammt heute von Bots – das können Suchmaschinen- oder KI-Bots sein, aber auch viele Spambots bzw. genauer E-Mail-Harvester. Wer die E-Mail-Adressen nicht in der Form mail (at) host.com anbieten möchte, sondern als korrekte Verweise mit mailto, der kann mit Javascript die Adressen vor Spambots schützen. Denn Spambots können in aller Regel nur die Adressen erbeuten, die sich im HTML-Teil befinden. Adressen und Links, die nur mit Javascript sichtbar sind, bleiben vor den allermeisten Bots verborgen.

In diesem Beispiel wird die E-Mail-Adresse des Autors getarnt, man kann auf ganz ähnliche Weise auch die Adresse des Admins tarnen, beispielsweise für das Impressum. Dazu legt man einen leeren Hyperlink an, der auf # verweist, damit die Suchmaschinen keinen fehlerhaften Link vorfinden. Für Nutzer von »NoScript« wird mit Hilfe von <noscript> ein Hinweis eingeblendet.

<a href="#" class="author-mail"></a>
<noscript>Bitte aktivieren Sie Javascript, um diese Adresse sehen zu können</noscript>

Die URL des Hyperlinks und der Linktext wird mit jQuery beim Seitenaufbau hinzugefügt. Dazu wird in der in der functions.php mit wp_localize_script() eine globale Variable definiert.

$post_id = get_the_ID();
$author_id = get_post_field( 'post_author', $post_id );

wp_enqueue_script( 'global_functions', get_stylesheet_directory_uri() . '/js/global-functions.js', array('jquery' ), true );
wp_localize_script( 'global_functions', 'global_vars', array (
   'author_email' => get_the_author_meta( 'user_email', $author_id )
  )
);

Diese zwei Zeilen genügen, um die URL und den Linktext einzufügen:

$( '.author_email' ).attr( 'href', 'mailto:' + global_vars.author_email );
$( '.author_email' ).html( global_vars.author_email );