Mit folgendem Code Snippet in der functions.php lassen sich emails verschlüsseln, so dass die meisten Spambots sie nicht auslesen können.
function wpcodex_hide_email_shortcode( $atts , $content = null ) { if ( ! is_email( $content ) ) { return; } return '<a href="mailto:' . antispambot( $content ) . '">' . antispambot( $content ) . '</a>'; } add_shortcode( 'email', 'wpcodex_hide_email_shortcode' );
Dieser Code benutzt die WordPress Funktion antispambot(); codiert Zeichenketten.
Um den Shortcode auch in einem Textwidget nutzen zu können, muss noch folgender Filter in die functions.php geschrieben werden
add_filter( 'widget_text', 'shortcode_unautop' ); add_filter( 'widget_text', 'do_shortcode' );
[email]john.doe@mysite.com[/email]
Fügt man noch den folgenden Filter zur functions.php hinzu, dann kann die Email auch normal ausschreiben, sie wird jedoch im Quelltext verschlüsselt.
<?php antispambot( $emailaddy, $hex_encoding ) ?>
<?php echo antispambot( 'john.doe@mysite.com' ); ?>
Wer nicht selber in den Code eingreifen möchte, installiert einfach das Plugin Email Address Encoder, das automatisch alle normal ausgeschriebenen email Adressen im Quelltext verschlüsselt:
https://wordpress.org/plugins/email-address-encoder/
Das fehlt was im Text oder?
„Fügt man noch den folgenden Filter zur functions.php hinzu, dann kann die Email auch“
und irgendwie fehlt der Shortcut als solches auch
Ja, da hast du Recht und sorry für die späte Antwort. Es lassen sich dann die emails normal ausschreiben, sie sind dann aber im Quelltext verschlüsselt. Sehr komfortabel erledigt diese Aufgabe auch das Plugin Email Address Encoder. Alle Emails werden mit diesem Plugin automatisch im Quelltext verschlüsselt … sehr praktisch! Ein Eingriff in den Code ist damit nicht mehr notwendig.
https://wordpress.org/plugins/email-address-encoder/