WordPress總會吸引很多垃圾留言,尤其在彼岸做出了很多所謂的部落格羣發或網站推廣的軟體後,垃圾留言更是很多。大部分人針對垃圾留言都是使用WordPress預設的Akismet來或留言驗證碼防堵。所以,就來總結下使用Akismet和使用驗證碼的利與弊吧:

Akismet利:WordPress預設外掛程式之一,著名的垃圾留言過濾外掛程式。

Akismet弊:存在誤斷和漏斷的情況,另外一點外掛程式必然會影響到WordPress運行速度

驗證碼利:可以有效過濾軟體類的垃圾評論

驗證碼弊:嚴重影響了用戶體驗,有損於部落格整體形象。人工類的垃圾評論不能過濾。

既然有人說使用驗證碼而不使用外掛程式,那自然有他的道理。但是在這裡有個提醒,就是如果你使用了驗證碼,那你的驗證碼一定要簡單。現在驗證碼大體是三類,一類是四位元字母類,第二類是五位元數字類,還有一種就是算術類的。

在這裡推薦你使用算術驗證,即算術類的,他是隨機出現兩個一位數相加,讓你計算出結果。選擇這個的好處就是對用戶體驗影響不是太大,輸入的位數少不會影響到用戶的情緒。 這裡,把這個方法分享給大家:

一、修改 wp-comments-post.php :

查找:
if ( '' == $comment_content )
在其上面添加代碼:

//Fufu_checkcode
if ( !$user->ID ) {
$aaa = trim($_POST[aaa]);
$bbb = trim($_POST[bbb]);
$subab = trim($_POST[subab]);
if((($aaa+$bbb)!=$subab)|| empty($subab)){
wp_die( __('請填寫正確的驗證碼') );
}
}
//Fufu_end

二、修改主題檔下的comments.php
查找
<input name="submit" type="submit" id="submit">
在其前面添加
<?php if (!$user_ID) : ?>
<?php $aaa=rand(0,5); $bbb=rand(3,9); ?><?php echo $aaa; ?>+<?php echo $bbb; ?>=
<input type="text" name="subab" id="subab" size="2" tabindex="5" style="width:20px" /><?php if ($req) _e('(必填)', 'inove'); ?>
<input name="aaa" value="<?php echo $aaa; ?>" type="hidden" />
<input name="bbb" value="<?php echo $bbb; ?>" type="hidden" />
<?php endif; ?>

好了,就這樣簡單完成了,測試下效果吧!

相關文章