Als Betreiber seiner eigenen Website kennt man das Problem, sobald man seine E-Mail auf der eigenen Website veröffentlicht folgen kurz darauf die ersten Spam-Nachrichten. Diese kommen dabei nicht nur über das Kontaktformular sondern werden auch gerne direkt geschickt. Grund dafür ist, dass Spammer eigene Webcrawler betreiben die auf Websites blind nach E-Mail Adressen suchen um diese mit Nachrichten bombardieren zu können. Nachdem wir uns vor einiger Zeit bereits um das Thema Kontaktformular-Spam gekümmert haben, geht es heute um die automatische Verschlüsselung von E-Mail Adressen auf der eigenen WordPress Website.
Um die E-Mail Adressen vor Spambots zu verstecken bedienen wir uns der antispambot() Funktion von WordPress. Diese Funktion wandelt den jeweils übergebenen String in HTML Entities um. Dies macht aus dem klassischen:
folgendes:
Obwohl der Quellcode nur noch HTML Tags ausgibt, merkt man im Frontend selbst nichts von dieser Änderung. Die E-Mail Adressen werden weiterhin richtig angezeigt und mailto-Links sind auch weiterhin ganz normal klickbar. Umgesetzt wird das mit dem folgenden Code den Ihr selbst einbauen könnt, alternativ findet Ihr am Ende der Seite einen Download-Link zu einem Plugin das Ihr euch direkt in WordPress installieren könnt.
function osu_encode_all_emails($content) {
// Regular expression to find email addresses
$pattern = '/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/';
// Callback function to encode email addresses
$callback = function ($matches) {
return antispambot($matches[0]);
};
// Apply the regular expression and callback to the content
$content = preg_replace_callback($pattern, $callback, $content);
return $content;
}
// Hook the function into the_content filter
add_filter('the_content', 'osu_encode_all_emails', 99999);
Nach dem Einbau sollten Kontaktformulare und die wichtigsten Teile eurer Website getestet werden. Wie bereits beschrieben werden alle E-Mails gefiltert was in Einzelfällen zu unerwarteten Problemen führen kann.
Wie versprochen findet Ihr das komplett eigenständige Plugin nachfolgend. Die zip-Datei könnt Ihr wie gewohnt über das WordPress Backend hochladen und installieren.