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/