Spam ist allgegenwärtig. Sobald eine E-Mail-Adresse im Klartext auf einer Webseite erscheint, wird sie von Bots ausgelesen und landet auf Spam-Listen. Zum Glück bietet WordPress eine einfache Funktion namens antispambot(), die dabei hilft, E-Mail-Adressen im Quellcode zu verschlüsseln und so das Risiko von Spam zu reduzieren.
Wichtig: Es gibt keine 100% sichere Methode, wie du eine öffentliche E-Mail-Adresse vor Spam-Missbrauch schützen kannst. Mit der Lösung in diesem Artikel wird es aber den Bots so schwer wie möglich gemacht, deine E-Mail-Adresse automatisiert über den Quellcode deiner Website auszulesen.
E-Mail-Adresse mit einem Shortcode einbinden
Die Funktion antispambot()
konvertiert die E-Mail-Adresse in ASCII-Zeichen, sodass Bots sie nicht mehr ohne Weiteres auslesen können.
Wenn du eine E-Mail-Adresse in Beiträgen oder Seiten anzeigen möchtest, kannst du einen Shortcode in der functions.php
deines (Child-)Themes definieren:
function wpc_safe_email( $atts , $content = null ) {
if ( ! is_email( $content ) ) {
return;
}
return '<a href="mailto:' . antispambot( $content ) . '">' . antispambot( $content ) . '</a>';
}
add_shortcode( 'email', 'wpc_safe_email' );
Nun kannst du den Shortcode einfach im WordPress-Editor verwenden:
[email]beispiel@domain.de[/email]
Vorteile des Shortcodes
- Einfache Integration in Beiträge und Seiten ohne manuelle Code-Anpassungen.
- Erhöhte Flexibilität: Du kannst jede beliebige E-Mail-Adresse im Content damit verschlüsseln
- Usability bleibt erhalten: Besucher können die Adresse einfach anklicken oder kopieren und verwenden. Der
mailto:
-Link wird ebenfalls automatisch gesetzt.
E-Mail-Adresse direkt in PHP ausgeben
Wenn du eine E-Mail-Adresse direkt in deinem Theme oder Plugin ausgeben möchtest, kannst du folgenden Code verwenden:
<?php echo antispambot('beispiel@domain.de'); ?>
Die Funktion hat einen optionalen zweiten Parameter $mailto
, der standardmäßig auf false
gesetzt ist. Wenn du diesen auf true
setzt, wird automatisch ein vollständiger mailto-Link generiert:
<?php echo antispambot("beispiel@domain.de", true); ?>
Das erzeugt dann:
<a href="mailto:beispiel@domain.de">beispiel@domain.de</a>
- Die E-Mail-Adresse
beispiel@domain.de
wird durchantispambot()
verschlüsselt. - Der Besucher der Webseite sieht weiterhin die korrekte E-Mail-Adresse.
- Im Quellcode wird die Adresse jedoch in einer kodierten Form angezeigt, sodass sie für viele Bots nicht mehr lesbar ist.
- Dieser Code kann an beliebiger Stelle in einem Theme oder Plugin verwendet werden, z. B. in der
footer.php
, um die Kontaktadresse im Footer anzuzeigen.
E-Mail-Adresse über Plugin verschlüsseln
Solltest du keinen Code anfassen wollen, kannst du deine E-Mail-Adresse auch über das Plugin Email Address Encoder verschlüsseln lassen.
Die kostenlose Version wandelt automatisch alle E-Mail-Adressen im Content um. Das funktioniert sowohl mit Inhalten über den Gutenberg-Editor, als auch mit gängigen Pagebuildern wie Elementor oder Bricks Builder.
Die Premium-Version für 14€ / Jahr bringt zusätzlich weitere Verschlüsselungsarten, automatische Verschlüsselung von Telefonnummern und Support u.a. für Content aus WooCommerce und ACF mit.
Fazit
Mit der WordPress-Funktion antispambot()
kannst du E-Mail-Adressen sicherer ausgeben und so das Risiko verringern, dass sie von Spam-Bots ausgelesen werden.
- Für eine direkte Integration in ein Theme oder Plugin kannst du
antispambot()
direkt in PHP verwenden. - Falls du E-Mail-Adressen bequem in Beiträgen oder Seiten einbinden willst, ist ein Shortcode deine Wahl.
- Falls du möglichst wenig Zeit mit dem Thema verbringen möchtest, empfehle ich dir die Premium-Version des Plugins Email Address Encoder
Es gibt zwar keine 100%ige Sicherheit gegen Spam-Bots, aber mit diesen Methoden machst du es ihnen erheblich schwerer.
Nutze antispambot()
und schütze deine Kontaktadressen vor unnötigem Spam!