GG資源網

提高性能!五種WordPress防止垃圾評論方法(WordPress中自動標記為垃圾評論的方法)

提高性能!五種WordPress防止垃圾評論方法

WordPress貌似和垃圾評論是一對「孿生兄弟」,無論在國內還是國外的空間主機上搭建的Wordpress博客,無論Wordpress有多少流量多麼低的權重,垃圾評論都會自動找上門來,假如有好幾天沒有進Wordpress後台查看的話,當你再一次「踏入」時卻發現垃圾評箱已經爆滿了。

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

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

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

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

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

2、用戶必須註冊並登錄才能發表評論。如果選擇了這一項,基本上就可以阻止所有的垃圾評論了。

3、評論者先前須評論通過了審核。勾選了這個的話,第一次在Wordpress發表評論的都會進入到審核隊列中,第二次發布評論就會自動顯示出來了。

4、評論黑名單。當評論的內容、評論者名稱、URL、電子郵件或IP地址中包含其中任何關鍵字時,系統將自動將評論標記為「垃圾評論」。一行一個關鍵字或IP地址。WordPress也會在詞中匹配關鍵字,例如「press」亦將匹配「WordPress」。

5、優缺點分析:

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

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

1、Akismet 官網:

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

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

3、Akismet啟用前需要到Akismet官網獲得一個序列號。現在啟用了Akismet後可以直接在後台看到評論的統計數據。Akismet有一個好處就是它可以阻止一些已經被判定為垃圾評論者繼續用你的博客提交評論。

4、NoSpamNX官網:

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

5、NoSpamNX反垃圾評論的方法與Akismet不同,安裝了NoSpamNX插件後,博客評論框的 name 屬性改成了隨機數,並添加一個新的隱藏的評論框,Spambot發評論時會把隱藏的評論框也填滿數據,而人工評論不會是這樣。插件根據此特徵從而Block掉機器人的垃圾評論。

6、優缺點分析:

1、Akismet優勢在於不僅能對付機器人發布垃圾評論,也可以阻止一些人工發布垃圾評論。但是Akismet存在著誤殺的概率,屏蔽掉的垃圾評論會留在資料庫,30天後才自動刪除。部落發現Akismet會導致評論提交變得更耗時。 2、NoSpamNX的優勢在於比Akismet更有效率,且不存在誤垃圾評論的問題,也不會產生什麼資料庫記錄。但是NoSpamNX僅僅對付垃圾評論機器人有效果,一些人工垃圾評論則可能無法阻止。

##########NextPage[title=提高性能!五種WordPress防止垃圾評論方法]##########

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

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

2、myQaptcha官網:

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

3、myQaptcha依據Qaptcha這個jQuery開源plugin整合的WordPress插件,主要作用就是在用戶發表評論前需要拖動解鎖,機器人發表評論肯定是不能完成這個動作的。

4、Fancy Captcha 官網:

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

5、Fancy Captcha與myQaptcha有點類似,啟動插件後,評論者需要拖動指定的小工具到圓環中才可以發表評論。

6、SI CAPTCHA 官網:

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

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

8、優缺點分析:

1、myQaptcha和Fancy Captcha應該是Wordpress反垃圾評論中用戶體驗做得比較好的,發表評論前只要動一動滑鼠就可以了,但是插件可能存在與原有的主題的兼容性問題。

2、SI CAPTCHA Anti-Spam 是一個功能強大的插件,不僅對於反垃圾評論有效果,還可以防止Wordpress惡意註冊、WP後台賬號暴力破解等,但是難看的數字常常會擋住評論者的「腳步」。

##########NextPage[title=提高性能!五種WordPress防止垃圾評論方法]##########

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

1、willin kan的反垃圾評論代碼在網上用的人比較多,實際測試效果也比較好,特別適用於那些討厭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\"] . \' (透過D理)\' : $_SERVER[\"REMOTE_ADDR\"];

  • $way = isset($_POST[\'w\']) ? \'手動操作\' : \'未經評論表格\';

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

  • $_POST[\'spam_confirmed\'] = \"請求: \". $request. \"\\n來路: \". $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(); 前面兩斜線刪除即可.

  • 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、優缺點分析:

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

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

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

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

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

  • function scp_comment_post( $incoming_comment ) {

  • $pattern = \'/[一-龥]/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、優缺點分析:

1、阻止全英文評論和含有日文字元的評論效果是不錯的,從部落的使用體驗來看,基本上阻止了絕大多數的Wordpress垃圾評論,當然也一兩個「漏網之魚」。

2、缺點也很明顯,它會阻止一些正常的評論,例如有些技術性的文章會用到編程代碼,不會中文的「國際友人」等等,在評論時都會遇到無法評論的情況。

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

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

2、從用戶體驗來看,使用SI CAPTCHA 的用戶體驗是最差的,而myQaptcha和Fancy Captcha則符合人「懶」的習慣和越簡單越好的心理要求,對正常的評論者不會造成太大的影響。

WordPress中自動標記為垃圾評論的方法

本文實例講述了Wordpress自動將包含長鏈接的評論標記為垃圾評論的方法。分享給大家供大家參考。具體分析如下:

現在大量的機器可以直接對WordPress博客進行評論並帶有大量的連接,這些帶鏈接評論我們定為垃圾評論了,這裡就來給大家介紹幾個自動將包含長鏈接的評論標記為垃圾評論的方法.

方法一:此方法依舊是來自 Willin Kan 大師(可惜他已經退出WordPress圈),折騰很簡單,直接將下面的代碼放到主題的functions.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><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>\",$input);\') );
}
}
function gate() {
if ( !emptyempty($_POST[\'w\']) && emptyempty($_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\"] . \' (透過代理)\' : $_SERVER[\"REMOTE_ADDR\"];
$way     = isset($_POST[\'w\'])                      ? \'手動操作\'                       : \'未經評論表格\';
$spamcom = isset($_POST[\'comment\'])                ? $_POST[\'comment\']                : null;
$_POST[\'spam_confirmed\'] = \"請求: \". $request. \"n來路: \". $referer. \"nIP: \". $IP. \"n方式: \". $way. \"n?熱? \". $spamcom. \"n -- 記錄成功 --\";
}
}
function sink( $comment ) {
if ( !emptyempty($_POST[\'spam_confirmed\']) ) {
if ( in_array( $comment[\'comment_type\'], array(\'pingback\', \'trackback\') ) ) return $comment;
//方法一: 直接擋掉, ? die(); 前面兩斜線?h除即可.
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();

這個方法可以阻止98%以上的垃圾評論,當然了,倡萌還建議你審核第一次提交的評論人的評論,設置審核後才顯示,如果遇到垃圾評論,將其email、IP、網址等添加到黑名單即可,下面是倡萌目前的評論設置,你可以在WP後台-設置-討論下設置.

方法二:自動拒絕包含特定關鍵詞的垃圾評論,將下面的代碼添加到主題的functions.php文件,自己根據需要,修改 $ bad_comment_content 數組的內容,任何包含在$ bad_comment_content 數組內的字元,將會被自動拒絕留言,代碼如下:

function in_comment_post_like($string, $array) {
foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
return false;
}
function drop_bad_comments() {
if (!emptyempty($_POST[\'comment\'])) {
$post_comment_content = $_POST[\'comment\'];
$lower_case_comment = strtolower($_POST[\'comment\']);
$bad_comment_content = array(
\'viagra\',
\'hydrocodone\',
\'hair loss\',
\'xanax\',
\'tramadol\',
\'russian girls\',
\'russian brides\',
\'lorazepam\',
\'adderall\',
\'dexadrine\',
\'no prescription\',
\'oxycontin\',
\'without a prescription\',
\'sex pics\',
\'family incest\',
\'online casinos\',
\'online dating\',
\'cialis\',
\'best forex\',
\'amoxicillin\'
);
if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
$comment_box_text = wordwrap(trim($post_comment_content), 80, \"n  \", true);
$txtdrop = fopen(\'/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt\', \'a\');
fwrite($txtdrop, \"  --------------n  [COMMENT] = \" . $post_comment_content . \"n  --------------n\");
fwrite($txtdrop, \"  [SOURCE_IP] = \" . $_SERVER[\'REMOTE_ADDR\'] . \" @ \" . date(\"F j, Y, g:i a\") . \"n\");
fwrite($txtdrop, \"  [USERAGENT] = \" . $_SERVER[\'HTTP_USER_AGENT\'] . \"n\");
fwrite($txtdrop, \"  [REFERER  ] = \" . $_SERVER[\'HTTP_REFERER\'] . \"n\");
fwrite($txtdrop, \"  [FILE_NAME] = \" . $_SERVER[\'SCRIPT_NAME\'] . \" - [REQ_URI] = \" . $_SERVER[\'REQUEST_URI\'] . \"n\");
fwrite($txtdrop, \'--------------**********------------------\'.\"n\");
header(\"HTTP/1.1 406 Not Acceptable\");
header(\"Status: 406 Not Acceptable\");
header(\"Connection: Close\");
wp_die( __(\'bang bang.\') );
}
}
}
add_action(\'init\', \'drop_bad_comments\');

今天再補充下,自動將包含長鏈接的評論標記為垃圾評論,將下面的代碼添加到主題的 functions.php 文件即可:

function rkv_url_spamcheck( $approved , $commentdata ) {
return ( strlen( $commentdata[\'comment_author_url\'] ) > 50 ) ? \'spam\' : $approved;
}
add_filter( \'pre_comment_approved\', \'rkv_url_spamcheck\', 99, 2 );

注意看第二行的 50,根據自己的需要修改這個數值,如果你希望將所有帶有鏈接(不管是否是長鏈接)的評論內容都自動標記為垃圾評論,將 50 改為 1 即可.

希望本文所述對大家的WordPress建站有所幫助。

Wordpress中自動標記為垃圾評論的方法 (https://www.wpmee.com/) WordPress使用教程 第1張

由於網站搬家,部分鏈接失效,如無法下載,請聯繫站長!謝謝支持!
1. 帶 [親測] 說明源碼已經被站長親測過!
2. 下載後的源碼請在24小時內刪除,僅供學慣用途!
3. 分享目的僅供大家學習和交流,請不要用於商業用途!
4. 本站資源售價只是贊助,收取費用僅維持本站的日常運營所需!
5. 本站所有資源來源於站長上傳和網路,如有侵權請郵件聯繫站長!
6. 沒帶 [親測] 代表站長時間緊促,站長會保持每天更新 [親測] 源碼 !
7. 盜版ripro用戶購買ripro美化無擔保,若設置不成功/不生效我們不支持退款!
8. 本站提供的源碼、模板、插件等等其他資源,都不包含技術服務請大家諒解!
9. 如果你也有好源碼或者教程,可以到審核區發布,分享有金幣獎勵和額外收入!
10.如果您購買了某個產品,而我們還沒來得及更新,請聯繫站長或留言催更,謝謝理解 !
GG資源網 » 提高性能!五種WordPress防止垃圾評論方法(WordPress中自動標記為垃圾評論的方法)

發表回復

CAPTCHAis initialing...