本页目录
在你的网站中因为一些原因需要留下邮箱信息,为了避免被采集造成不必要的麻烦,可以参考以下内容防止网站内的邮箱被恶意采集。
WordPress 会自动帮你转义文章内容和评论内容中的 Email 地址(不会影响其他地方的 Email)
只需要在 WordPress 主题的 functions.php 的最后一个 ?> 前添加下面的代码即可:
function security_remove_emails($content) { $pattern = '/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4})/i'; $fix = preg_replace_callback($pattern,"security_remove_emails_logic", $content);
return $fix;}function security_remove_emails_logic($result) { return antispambot($result[1]);}add_filter( 'the_content', 'security_remove_emails', 20 );add_filter( 'widget_text', 'security_remove_emails', 20 );原理介绍
WordPress 有个 antispambot 函数可以帮我们转义 Email 地址,让采集器无法识别 Email 地址,
保护你的邮箱不受垃圾邮件的骚扰。同时又可以让其他网友可以自由地复制 Email 地址,而不必做成图片的形式,影响用户体验
使用说明
添加以上代码后,你可以尝试你的某篇文章中输入一个Email地址,更新后查看这篇文章的源代码,就会看到转义后的邮箱地址。
如Email地址:john@a.com
转义后,源代码中看到的是:john@a.com
邮箱地址采集器都是通过源代码来采集Email地址的,转义后的内容对它们来说几乎是无法识别的。虽然在源代码中你会看到一堆乱码,但是你的文章和评论中,我们还是可以看到正常的 Email 地址,并可以自由地复制的。