我们可能需要在网站上留我们的邮件地址,但是这却给我们带来了很多困扰,比如有的营销软件就会批量自动抓取右键地址,然后推送垃圾广告邮件,这种邮件可谓是防不甚防,几乎无法完全屏蔽掉,最好的方法就是隐藏我们自己的邮箱,不让其它非法软件获取到我们的邮箱地址。
WordPress 拥有强大的 API 函数,我们可以在输出内容之前,先隐藏 Email 地址,然后在格式化输出即可。

  1. add_filter('the_content','ws_hide_emails',99);
  2. function ws_hide_emails($content){
  3. $pattern ='/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4})/i';
  4. preg_match_all($pattern, $content, $match);
  5. foreach($match as $match_item){
  6. str_replace($match[1], antispambot($match[1]), $content);
  7. }
  8. return $content;
  9. }

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