WordPress 技巧:自动隐藏邮件地址防止垃圾邮件

垃圾邮件真的是防不胜防,前面我写过提供过 Antispambot ShortCode,通过 ShortCode 的方式输入邮件地址实现隐藏邮件地址,不被机器收集,从而达到防止垃圾邮件的目的。不过这个方法还是有点不方便,就是输入邮件的时候需要试用 ShortCode 方式。今天就介绍一种新方法,在撰写日志的时候直接输入邮件地址,也会自动被隐藏。

下面的代码通过正则提取内容中的邮件地址,然后使用 WordPress 的 antispambot 函数隐藏 email 地址,同样将代码复制到当前主题的 functions.php 文件中即可。


add_filter( 'the_content', 'wpjam_hide_emails', 99 );
add_filter( 'widget_text', 'wpjam_hide_emails', 99 );
function wpjam_hide_emails($content) {
	$pattern = '/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+/.[a-zA-Z]{2,4})/i';
	return preg_replace_callback($pattern, "wpjam_hide_emails_callback", $content);
}
function wpjam_hide_emails_callback($match) {
	return antispambot($match[1]);
}