有時(shí)候想在博客中向用戶留言告訴他們讀者的 email 地址,讓用戶直接通過 email 地址聯(lián)系,但是這樣簡單展示 email 地址被機(jī)器收集,,然后收到一大堆 spam。
防止Email被機(jī)器收集
WordPress 默認(rèn)有antispambot函數(shù),,它可以將 email 地址轉(zhuǎn)換成機(jī)器無法識別而瀏覽器能夠正確顯示的郵件地址,,所以我們可以在主題的 functions.php 文件中添加如下的代碼:
add_shortcode( 'email', 'wpjam_email_shortcode_handler' );function wpjam_email_shortcode_handler( $atts, $content='' ) { extract( shortcode_atts( array( 'mailto' => '0' ), $atts ) ); return antispambot( $content, $mailto );}
使用Antispambot ShortCode插件
Antispambot ShortCode 這個(gè)插件使用非常簡單,上傳激活之后,,如果只是簡單展示郵件地址,,只需要在日志內(nèi)容輸入以下內(nèi)容:
[email]you-email-address@email.com[/email]
顯示效果:you-email-address@email.com
查看源代碼,你會(huì)發(fā)現(xiàn) email 地址 HTML 源代碼已經(jīng)是:
you-email-address@ email.com
這樣的代碼,,機(jī)器人是很難收集的,,但是普通用戶則可以直接閱讀,不受影響,。
如果你想把 email 地址顯示為連接,,可以加上 link 參數(shù),如:
[email link="1"]you-email-address@email.com[/email]
顯示結(jié)果為:you-email-address@email.com
插件下載:Antispambot ShortCode
自動(dòng)隱藏郵件地址
當(dāng)然,,如果你不想使用 shortcode,,而想直接在日志中輸入的郵件地址也能防止被機(jī)器收集,可以使用提供的代碼自動(dòng)隱藏郵件地址防止垃圾郵件。
下面的代碼通過正則提取內(nèi)容中的郵件地址,,然后使用 WordPress 的antispambot函數(shù)隱藏 email 地址,,同樣將代碼復(fù)制到當(dāng)前主題的functions.php文件中即可,。
add_filter( 'the_content', 'wpjam_hide_emails', 99 );add_filter( 'widget_text', 'wpjam_hide_emails', 99 );function wpjam_hide_emails($content) {$pattern = '/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})/i';return preg_replace_callback($pattern, "wpjam_hide_emails_callback", $content);}function wpjam_hide_emails_callback($match) {return antispambot($match[1]);}
原文鏈接:http://blog.wpjam.com/m/antispambot-shortcode/