在你的網站中因為一些原因需要留下郵箱信息,為了避免被采集造成不必要的麻煩,可以參考以下內容防止網站內的郵箱被惡意采集。
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地址,并可以自由地復制的。