WordPress防止邮箱采集器收集文章和评论中的Email地址

日期: 标签:WordPress教程
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

     有些时候,跟网友交流的过程中,你或者你的读者会无意在文章内容或评论中留下Email地址,这样可能遭遇的问题是,你的Email地址就会被邮箱地址采集器收集走,垃圾邮件就会像洪水一样涌来。

     幸好WordPress有个antispambot函数可以帮我们转义Email地址,让采集器无法识别Email地址,保护你的邮箱不受垃圾邮件的骚扰。同时又可以让其他网友可以自由地复制Email地址,而不必做成图片的形式,影响用户体验。

实现代码

     将以下php代码复制粘贴到你的当前主题的functions.php中,一旦保存,WordPress就会自动帮你转义文章内容评论内容中的Email地址(不会影响其他地方的Email):

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( 'comment_text', 'security_remove_emails', 20 );

使用说明

     添加以上代码后,你可以尝试你的某篇文章中输入一个Email地址,更新后查看这篇文章的源代码,就会看到转义后的邮箱地址。

     如Email地址:john@a.com

     转义后,源代码中看到的是:john@a.com

     邮箱地址采集器都是通过源代码来采集Email地址的,转义后的内容对它们来说几乎是无法识别的。虽然在源代码中你会看到一堆乱码,但是你的文章和评论中,我们还是可以看到正常的Email地址,并可以自由地复制的。

补充内容

     你可能遇到过这样的事情,某人发帖声称他手里有某个东西可以提供下载,但是必须留下你的邮箱,他再发给你。这时候如果你特别需要这个东西,你可能就会留下你的邮箱地址。可结果呢,你想要的东西可能发给你了,但是垃圾邮件却像洪水一样涌来。

     出现这样的情况,其原因在于你的Email地址被自动邮箱地址采集器收集走了,或者说发帖的人根本就是放下诱饵,存心就是在收集邮箱地址,你的邮箱地址经过层层倒手,垃圾邮件就源源不断地飘过来了。

参考文章

How to automatically hide email adresses from spambots on your WordPress blog

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/automatically-hide-email-adresses-from-spambots-on-wordpress.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者。

43 条留言

点此留言
1 2 500
  1. scarangel93

    站长没收入就弄死了。
    决定关了adblock,碰见广告太多的站单个屏蔽。要不杀伤力太大。

  2. Ludou

    @scarangel93 好吧,关掉adblock也未必能给站长带来收入。

  3. 小迷 小迷

    从您这学到很多WP的东东。这篇文章也毫不客气的收下,这是对访客对用户负责!

  4. 超級efly 超級efly

    前來支持一下~~非常實用!!

  5. David

    我觉得采集器也不傻,既然能匹配@,那为什么不能把实体也匹配了?
    还是用图片或者js吧。

  6. 明月登楼 明月登楼

    这个真心的好!我收了!呵呵!

1 2

发表留言