wordpress非插件自动屏蔽垃圾评论汇总

正在很努力的加载中...

垃圾评论层出不穷,从上周到现在两周竟然有400多条英文和垃圾的评论。有些评论一看就是广告,不过绝大部分是链接和英文。

对于垃圾评论我最近使用了一款插件,可以有效的屏蔽,一直没有遇到误判情况。名为”NoSpamNX“,大家可以在后台直接搜,安装启用就行,不用设置。

另外更简单的办法当然是不用插件了。大家都知道,插件多了会加重服务器负担。当然插件多少和网站打开速度没有关系。有关系的只有插件中的js文件。js多的话会影响的。所以大家都宁可不用插件。好了,言归正传。

一、WordPress自动拒绝垃圾评论


将以下代码粘贴到你的主题functions.php模板中。

任何包含在$ 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’);    

以上代码可以自动屏蔽机器发的留言,但是不能屏蔽人为发的留言。

二、屏蔽指定内容的防垃圾代码


1、以下代码不允许评论中只有英文或者出现<a 随便 href=" 或者rel="nofollow"或者”http://“如果你的主题没有使用ajax评论,那么请将下列代码添加到function.php中。

function lianyue_comment_post( $incoming_comment ) {    
$pattern = ’/[一-龥]/u’;    
$http = ’/[href="|rel="nofollow"|http:\/\/|<\/a>]/u’;  
// 禁止全英文评论  
if(!preg_match($pattern, $incoming_comment['comment_content'])) {  
wp_die( ”您的评论中必须包含汉字!“ );  
}elseif(preg_match($http, $incoming_comment['comment_content'])) {  
wp_die( ”万恶的发贴机!” );    
}    
return( $incoming_comment );    
}    
add_filter(‘preprocess_comment’, ’lianyue_comment_post’);    

2、如果你的主题使用了ajax评论那么请将下列代码添加到ajax文件合适位置。本主题(风云主题)请将下列代码添加到comments-ajax.php中最后一个个err( __(的下一行。

$pattern = ’/[一-龥]/u’;    
if (!preg_match($pattern,$comment_content) )    
err( __(‘您的评论中必须包含汉字!’) );    
$http = ’/[href="|rel="nofollow"|http:\/\/|<\/a>]/u’;    
if (preg_match($http,$comment_content) )    
err( __(‘万恶的发贴机!’) );    

以上代码中的汉字大家可以任意改动。

文章出自:http://www.zuifengyun.com/block-spam-non-review-summary.html 版权所有,除注明外皆为原创。文章仅为作者个人观点,不代表醉风云立场。

24 条评论

  • html5教程 11个月前(09-20)

    这么好的文章,怎么没评论呢?

  • 源码窝 3年前(2014-05-22)

    我想把评论中的那个那输入网址去了怎么搞呀

发表评论

电子邮件地址不会被公开。 必填项已用*标注