歡迎訪(fǎng)問(wèn)世紀網(wǎng)絡(luò )官網(wǎng),寶雞網(wǎng)站建設SEO優(yōu)化已累計服務(wù)超過(guò)900家企業(yè)!     咨詢(xún)熱線(xiàn):13619273150

15年網(wǎng)站建設優(yōu)化經(jīng)驗,900家客戶(hù)的選擇,值得信賴(lài)!


技術(shù)黨學(xué)起來(lái)!五種WordPress防止垃圾評論方法

作者:寶雞網(wǎng)絡(luò )公司      發(fā)布時(shí)間:2015-02-09      瀏覽:2422

62.9K


Word Press貌似和垃圾評論是一對“孿生兄弟”,無(wú)論在國內還是國外的空間主機上搭建的Wordpress博客,無(wú)論Wordpress有多少流量多么低的權重,垃圾評論都會(huì )自動(dòng)找上門(mén)來(lái),假如有好幾天沒(méi)有進(jìn)Wordpress后臺查看的話(huà),當你再一次“踏入”時(shí)卻發(fā)現垃圾評箱已經(jīng)爆滿(mǎn)了。

WordPress垃圾評論數量多容易掩蓋正常的讀者評論,批量刪除垃圾評論又容易造成誤刪,WordPress垃圾評論發(fā)布機器持續不斷地向網(wǎng)站提交評論請求,頻率足夠高的話(huà)則變演變成一種網(wǎng)站攻擊,配置差一些的網(wǎng)站主機很有可能因此而運行緩慢,嚴重者造成服務(wù)器宕機,無(wú)法正常訪(fǎng)問(wèn)。

WordPress的垃圾評論的危害是不言而喻的,對付Wordpress垃圾評論不僅要“阻斷”垃圾評論的發(fā)布,更要提前“阻止”垃圾評論的提交,要讓垃圾評論無(wú)處可藏,無(wú)機可趁。本文將分享五種Wordpress防止垃圾評論的方法,如果你正被博客的垃圾評論所困擾,可以參考文章的方法來(lái)解決。

五種Wordpress防止垃圾評論方法-過(guò)濾垃圾評論提高WP運行效率

一、Wordpress自帶的反垃圾評論設置

1、作為一個(gè)博客程序,Wordpress實(shí)際上也自帶了一些簡(jiǎn)單的防止垃圾評論的設置,如果能夠充分利用好這些功能,就能從Wordpress程序本身達到一定的反垃圾評論效果了。

2、用戶(hù)必須注冊并登錄才能發(fā)表評論。如果選擇了這一項,基本上就可以阻止所有的垃圾評論了。

3、評論者先前須評論通過(guò)了審核。勾選了這個(gè)的話(huà),第一次在Wordpress發(fā)表評論的都會(huì )進(jìn)入到審核隊列中,第二次發(fā)布評論就會(huì )自動(dòng)顯示出來(lái)了。

4、評論黑名單。當評論的內容、評論者名稱(chēng)、URL、電子郵件或IP地址中包含其中任何關(guān)鍵字時(shí),系統將自動(dòng)將評論標記為“垃圾評論”。一行一個(gè)關(guān)鍵字或IP地址。WordPress也會(huì )在詞中匹配關(guān)鍵字,例如“press”亦將匹配“WordPress”。

5、優(yōu)缺點(diǎn)分析:

1、只有注冊才能發(fā)表評論功能不適合開(kāi)啟,否則正常用戶(hù)的評論的熱情也會(huì )下降,但有人研究發(fā)現這樣會(huì )有利WP注冊用戶(hù)的增加。 2、只有之前有通過(guò)審核評論的第二次自動(dòng)顯示出來(lái),對反垃圾評論很幫助,建議開(kāi)啟,但是老用戶(hù)如果換了郵箱則又會(huì )當新用戶(hù),評論仍需審核。 3、評論黑名單功能可以搭配其它的Wordpress反垃圾評論方法一起使用,它可以起到“查漏補缺”的作用,關(guān)鍵時(shí)候發(fā)揮重要作用。

二、Wordpress智能反垃圾評論插件:Akismet 和NoSpamNX

1、Akismet 官網(wǎng):

插件地址:http://akismet.com/

2、Akismet是Wordpress官方推薦用的反垃圾評論插件,是Wordpress自帶的。工作原理是:將留下的評論用戶(hù)記錄提交到一臺服務(wù)器,服務(wù)器根據歷史記錄(之前有沒(méi)有人把這條評論標記為 Spam),以及一些特定的算法來(lái)判斷是不是垃圾評論。

3、Akismet啟用前需要到Akismet官網(wǎng)獲得一個(gè)序列號?,F在啟用了Akismet后可以直接在后臺看到評論的統計數據。Akismet有一個(gè)好處就是它可以阻止一些已經(jīng)被判定為垃圾評論者繼續用你的博客提交評論。

4、NoSpamNX官網(wǎng):

插件地址:http://wordpress.org/plugins/nospamnx/

5、NoSpamNX反垃圾評論的方法與Akismet不同,安裝了NoSpamNX插件后,博客評論框的 name 屬性改成了隨機數,并添加一個(gè)新的隱藏的評論框,Spambot發(fā)評論時(shí)會(huì )把隱藏的評論框也填滿(mǎn)數據,而人工評論不會(huì )是這樣。插件根據此特征從而B(niǎo)lock掉機器人的垃圾評論。

6、優(yōu)缺點(diǎn)分析:

1、Akismet優(yōu)勢在于不僅能對付機器人發(fā)布垃圾評論,也可以阻止一些人工發(fā)布垃圾評論。但是Akismet存在著(zhù)誤殺的概率,屏蔽掉的垃圾評論會(huì )留在數據庫,30天后才自動(dòng)刪除。部落發(fā)現Akismet會(huì )導致評論提交變得更耗時(shí)。 2、NoSpamNX的優(yōu)勢在于比Akismet更有效率,且不存在誤垃圾評論的問(wèn)題,也不會(huì )產(chǎn)生什么數據庫記錄。但是NoSpamNX僅僅對付垃圾評論機器人有效果,一些人工垃圾評論則可能無(wú)法阻止。

三、Wordpress評論人工驗證插件:myQaptcha,Fancy Captcha ,SI CAPTCHA

1、WordPress垃圾評論90%以上都是由機器人產(chǎn)生的,如果能夠阻止這些機器人發(fā)布的垃圾評論,Wordpress反垃圾評論也就成功了一半了。myQaptcha,Fancy Captcha ,SI CAPTCHA 就是三款用來(lái)驗證發(fā)表評論是不是人工的插件。

2、myQaptcha官網(wǎng):

插件地址:http://wordpress.org/plugins/myqaptcha/

3、myQaptcha依據Qaptcha這個(gè)jQuery開(kāi)源plugin整合的Wordpress插件,主要作用就是在用戶(hù)發(fā)表評論前需要拖動(dòng)解鎖,機器人發(fā)表評論肯定是不能完成這個(gè)動(dòng)作的。

4、Fancy Captcha 官網(wǎng):

插件地址:http://wordpress.org/plugins/wp-fancy-captcha/

5、Fancy Captcha與myQaptcha有點(diǎn)類(lèi)似,啟動(dòng)插件后,評論者需要拖動(dòng)指定的小工具到圓環(huán)中才可以發(fā)表評論。

6、SI CAPTCHA 官網(wǎng):

插件地址:http://wordpress.org/plugins/si-captcha-for-wordpress/

7、SI CAPTCHA Anti-Spam 是一個(gè)WordPress 驗證碼插件,可以給注冊頁(yè)面、登錄頁(yè)面、找回密碼頁(yè)面以及評論功能等添加驗證碼,發(fā)表評論前必須輸入驗證。

8、優(yōu)缺點(diǎn)分析:

1、myQaptcha和Fancy Captcha應該是Wordpress反垃圾評論中用戶(hù)體驗做得比較好的,發(fā)表評論前只要動(dòng)一動(dòng)鼠標就可以了,但是插件可能存在與原有的主題的兼容性問(wèn)題。

2、SI CAPTCHA Anti-Spam 是一個(gè)功能強大的插件,不僅對于反垃圾評論有效果,還可以防止Wordpress惡意注冊、WP后臺賬號暴力破解等,但是難看的數字常常會(huì )擋住評論者的“腳步”。

四、Wordpress防止垃圾評論純代碼法:willin kan的反垃圾評論代碼

1、willin kan的反垃圾評論代碼在網(wǎng)上用的人比較多,實(shí)際測試效果也比較好,特別適用于那些討厭Wordpress插件、喜歡自己折騰WP程序的博主們使用。

2、將以下代碼放到你的主題的function.php中。

■// 垃圾評論攔截

■class anti_spam {

■function anti_spam() {

■if ( !current_user_can('level_0') ) {

■add_action('template_redirect', array($this, 'w_tb'), 1);

■add_action('init', array($this, 'gate'), 1);

■add_action('preprocess_comment', array($this, 'sink'), 1);

■}

■}

■function w_tb() {

■if ( is_singular() ) {

■ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=(["'])comment(["'])(.+)/textarea>#",

■"textarea$1name=$2w$3$4/textarea>",$input);') );

■}

■}

■function gate() {

■if ( !empty($_POST['w']) && empty($_POST['comment']) ) {

■$_POST['comment'] = $_POST['w'];

■} else {

■$request = $_SERVER['REQUEST_URI'];

■$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隱瞞';

■$IP = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透過(guò)D理)' : $_SERVER["REMOTE_ADDR"];

■$way = isset($_POST['w']) ? '手動(dòng)操作' : '未經(jīng)評論表格';

■$spamcom = isset($_POST['comment']) ? $_POST['comment'] : null;

■$_POST['spam_confirmed'] = "請求: ". $request. "n來(lái)路: ". $referer. "nIP: ". $IP. "n方式: ". $way. "n內容: ". $spamcom. "n -- 記錄成功 --";

■}

■}

■function sink( $comment ) {

■if ( !empty($_POST['spam_confirmed']) ) {

■if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;

■//方法一: 直接擋掉, 將 die(); 前面兩斜線(xiàn)刪除即可.

■die();

■//方法二: 標記為 spam, 留在資料庫檢查是否誤判.

■//add_filter('pre_comment_approved', create_function('', 'return "spam";'));

■//$comment['comment_content'] = "[ 判斷這是 Spam! ]n". $_POST['spam_confirmed'];

■}

■return $comment;

■}

■}

■$anti_spam = new anti_spam();

3、注意:代碼最后提供了兩種對付垃圾評論的辦法,一種是直接阻止評論,另一種是將垃圾評論放在Wordpress評論的待審核隊列中,默認的是第一種,如果你想使用第二種,請給die();加上//,然后去掉“方法二”下面代碼的//符號。

4、優(yōu)缺點(diǎn)分析:

1、直接使用純代碼就可以達到Wordpress反垃圾評論的效果,效率自然要好于使用一些Wordpress插件,這也是為什么不少人喜歡用代碼來(lái)代替插件要實(shí)現的功能。

2、willin kan的反垃圾評論代碼也有可能造成一些誤判,為了最大限度地留住所有人的評論,我們可以將評論放在待審核隊列中,方便我們自己人工來(lái)判定。

五、Wordpress防止垃圾評論純代碼法:阻止全英文和含有日文字符評論

1、根據觀(guān)察,Wordpress的垃圾評論中有95%是全英文評論和含有日文字符的評論,如果能夠禁止這些評論的提交,也就基本上達到了Wordpress防止垃圾評論的目的了。

2、將以下代碼放入function.php中,就可以阻止全英文的評論了。

■function scp_comment_post( $incoming_comment ) {

■$pattern = '/[一-龥](méi)/u';

■// 禁止全英文評論

■if(!preg_match($pattern, $incoming_comment['comment_content'])) {

■wp_die( "You should type some Chinese word (like "你好") in your comment to pass the spam-check, thanks for your patience! 您的評論中必須包含漢字!" );

■}

■return( $incoming_comment );

■}

■add_filter('preprocess_comment', 'scp_comment_post');

3、將以下代碼放入function.php中,就可以阻止包含任意日文字符的評論了。

■// 禁止日文評論

■function BYMT_comment_jp_post( $incoming_comment ) {

■$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';

■if(preg_match($jpattern, $incoming_comment['comment_content'])){

■wp_die( "禁止有日文字符的評論 You should type some Chinese word" );

■}

■return( $incoming_comment );

■}

■add_filter('preprocess_comment', 'BYMT_comment_jp_post');

4、優(yōu)缺點(diǎn)分析:

1、阻止全英文評論和含有日文字符的評論效果是不錯的,從部落的使用體驗來(lái)看,基本上阻止了絕大多數的Wordpress垃圾評論,當然也一兩個(gè)“漏網(wǎng)之魚(yú)”。

2、缺點(diǎn)也很明顯,它會(huì )阻止一些正常的評論,例如有些技術(shù)性的文章會(huì )用到編程代碼,不會(huì )中文的“國際友人”等等,在評論時(shí)都會(huì )遇到無(wú)法評論的情況。

六、Wordpress防止垃圾評論方法小結

1、總得來(lái)看,Wordpress自帶的反垃圾評論功能設置+純代碼防止垃圾評論是最有效果的,也就是最有效率的,建議采用此方法的朋友先在本地做測試,防止代碼不兼容導致網(wǎng)站無(wú)法訪(fǎng)問(wèn)。

2、從用戶(hù)體驗來(lái)看,使用SI CAPTCHA 的用戶(hù)體驗是最差的,而myQaptcha和Fancy Captcha則符合人“懶”的習慣和越簡(jiǎn)單越好的心理要求,對正常的評論者不會(huì )造成太大的影響。



0