Shortcode E-Mail Obfuscator

Inhaltsverzeichnis

Folgendes Shortcode-Snippet ist nützlich, um E-Mails zu verschleiern, um sie vor SPAM zu schützen. Dazu der Hinweis, dass diese Methode nur funktioniert, wenn Javascript aktiviert ist. Darüber hinaus gibt es keinen 100%igen Schutz vor Bots, die E-Mail Adressen von Websites sammeln.

add_shortcode( 'mnc_mail', function ( $atts ) {

	$atts = shortcode_atts( [ 'email' => '' ], $atts, 'mnc_mail' );

	$calc_mail = function ( $text ) {
		$encoded_text = '';
		$length = mb_strlen($text, 'UTF-8');
		for ($i = 0; $i < $length; $i++) {
			$char = mb_substr($text, $i, 1, 'UTF-8');
			$encoded_text .= '\\u' . sprintf("%04x", ord($char));
		}
		return $encoded_text;
	};
	$obfuscate = $calc_mail($atts['email']);

	return <<< FORMAT
<a href="javascript:location='mailto:$obfuscate';void 0"><script type="text/javascript">document.write('$obfuscate')</script></a>
FORMAT;
} );Code-Sprache: PHP (php)