»

防止博客内容中的 Email 地址被采集

    WordPress网络安全  
wordpress网站镜像建站CDN工作cookies客户申请状态又拍云CDNFAQ缓存浏览器插件访问网站优化IIS爬虫访客WordPress插件Apachewindows主机web.config网络安全CDN的问题防盗链

网站上公布了自己的电子邮件地址后,莫名其妙收到了一大堆垃圾邮件,是不是很烦恼?很可能是有人采集了你网站上的电邮地址。

有时候想在博客中向用户留言告诉他们读者的 email 地址,让用户直接通过 email 地址联系,但是这样简单展示 email 地址被机器收集,然后收到一大堆 spam。所以,我们需要设置一下,防止此类事情发生。

水煮鱼的网站提供了几种代码,我就借花献佛了。

 

方法一:使用短代码

WordPress 默认有 antispambot 函数,它可以将 email 地址转换成机器无法识别而浏览器能够正确显示的邮件地址,
所以我们可以在主题的 functions.php 文件中添加如下的代码

  1. // 防止博客内容中的 Email 地址被收集
  2. add_shortcode( 'email', 'wpjam_email_shortcode_handler' );
  3. function wpjam_email_shortcode_handler( $atts$content='' ) {
  4. extract( shortcode_atts( array(
  5. 'mailto' => '0'
  6. ), $atts ) );
  7.  
  8. return antispambot( $content$mailto );
  9. }

如果只是简单展示邮件地址,只需要在日志内容输入以下内容,引入短代码 [ email]:

[ email]your-email-address@email.com[/email ]

显示效果:your-email-address@email.com

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

 

查看源代码,你会发现 email 地址 HTML 源代码已经是:

your-email-address@email.com
这样的代码,机器人是很难收集的,但是普通用户则可以直接阅读,不受影响。

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

 

方法二:直接隐藏

当然,如果你不想使用 shortcode,而想直接在日志中输入的邮件地址也能防止被机器收集,下面的代码通过正则提取内容中的邮件地址,然后使用 WordPress 的 antispambot 函数隐藏 email 地址,同样将代码复制到当前主题的 functions.php 文件中即可。

  1. // 防止博客内容中的 Email 地址被收集
  2. add_filter( 'the_content', 'wpjam_hide_emails', 99 );
  3. add_filter( 'widget_text', 'wpjam_hide_emails', 99 );
  4. function wpjam_hide_emails($content) {
  5.     $pattern = '/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})/i';
  6.     return preg_replace_callback($pattern"wpjam_hide_emails_callback"$content);
  7. }
  8. function wpjam_hide_emails_callback($match) {
  9.     return antispambot($match[1]);
  10. }

相关代码下载链接pan.baidu.com/s/13QFUvOgUgwEh5aipna1h1w 密码: 2s5f

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 1416字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →