Mailadressen in WordPress schützen
Schon seit einiger Zeit bin ich auf der Suche nach einer ‚einfachen‘ Möglichkeit, Klartext E-Mail-Adressen auf WP-Seiten (bspw. im Impressum) oder in WP-Artikeln ‚einfach‘ zu verschlüsseln, bzw. unkenntlich zu machen, um SPAM (halbwegs vernünftig) zu vermeiden.
Nachdem ich dann einige Plugins wie bspw. EmailShroud, Transpose Email und Obfuscate-Email ausprobiert hatte und mit allen nicht so ganz zufrieden war, bin ich vor ein paar Tagen durch einen Artikel bei dynamicinternet auf die WP-eigene Funktion antispambot() gestolpert.
Diese ‚verschleiert‘ die darzustellende (und ihr übergebene) Mail-Adresse in zufälliger Form und hat somit schon die Hälte der Funktionalität, die ich erwarte. Nur einen „mailto:“-Link bastelt sie nicht und es muss leider auch für die Benutzung der reine PHP-Quelltext im WP-Content benutzt werden, was ein Plugin, wie bspw. Exec-PHP, voraussetzt.
So viel Kuddelmuddel und Aufstand wegen so einer einfachen Sache, wie dem Absichern einer Mail-Adresse? – Es geht auch einfacher…!
Wie heute schön beim Smashing Magazine im Artikel „Mastering WordPress Shortcodes“ zu lesen war, ist es ultra-einfach einen kleinen und funktionierenden Shortcode in seinem verwendeten Theme einzubinden.
Und hier ist nun mein Code-Schnipsel für obiges ‚Obfuskieren‘:
/* WP-Shortcode: obfuscate (secure) email by http://sokai.name */
function SecureMail($atts, $content = null) {
extract(shortcode_atts(array(
"mailto" => 'mailto:'
), $atts));
$asb = antispambot($content);
$mailto2 = antispambot($mailto);
return '<a href="mailto:'.$mailto2.'">'.$asb.'</a>';
}
add_shortcode('sm', 'SecureMail');
Diesen einfach, bspw. am Ende, der functions.php im Themeverzeichnis anfügen und mittels folgenden Shortcodes im WP-Content benutzen:
[sm mailto="bla@blubbbb.com"]bla@blubbbb.com[/sm]
Die Ausgabe ist dann wie folgt:
[sm mailto=“bla@blubbbb.com“]bla@blubbbb.com[/sm]
So viel noch auf die Schnelle… – Viel Spaß beim Ausprobieren & n8i
Update 18. Februar 2009
plus: $mailto2 = antispambot($mailto);
Denn natürlich muss auch die mailto-Adresse ‚verschleiert‘ werden, was in der Originalversion dieses Artikels (und des obigen Code-Blocks) nicht der Fall war.
März 11th, 2009 - 23:18
Vielen Dank für diesen Tip! Funktioniert einwandfrei!
März 12th, 2009 - 00:31
Danke für die Blumen!
Du solltest jedoch auf jeden Fall den Kommentar von Lorelle bei wpengineer.com noch lesen. – So nett die antispambot-Funktion im ersten Moment auch aussehen mag, so einfach scheint es wohl für die SPAM-Bots zu sein, jegliche normal-codierte (also für Browser etc. noch lesbare) Mailadressen auszulesen…