记录一些常用的函数和瞎折腾的过程……

wordpress函数之:拒绝垃圾评论

提醒:本文最后更新于 2580 天前,文中所描述的信息可能已发生改变,请谨慎使用。

在不使用插件的情况下,如何实现反垃圾评论?很简单,用下面的代码可以实现,将下述代码粘贴到你主题所在functions.php中即可。

function spam_comment_post( $incoming_comment ) {
    $enpattern = '/[一-龥]/u';
    $jpattern = '/[ぁ-ん]+| [ァ-ヴ]+/u';
    $http = '/[href="|rel="nofollow"|http:\/\/|<\/a>]/u';
    if(!preg_match($enpattern, $incoming_comment['comment_content'])) {
        wp_die( "全英语呀,博主外语很捉急!" );
    }
    if(preg_match($jpattern, $incoming_comment['comment_content'])){
        wp_die( "日文滚粗!Japanese Get out!日本語出て行け!" );
    }
    if(preg_match($http, $incoming_comment['comment_content'])){
        wp_die( "万恶的发贴机!" );
    }
    return( $incoming_comment );
}
add_filter('preprocess_comment', 'spam_comment_post');

如果你换经常换主题,又常常忘记加入这段代码,那就将它作为插件使用吧。新建一个php文件,复制下面的代码到php文件中,再将此文件放到插件目录(wp-content/plugins/),再进入后台启用这个插件即可。

/* 
Plugin Name: Refuse Spam Comments 
Plugin URI: https://www.psay.cn/ 
Description: Refuse spam comment! 
Version: 1.0 
Author: psay.cn 
Author URI: https://www.psay.cn/ 
*/  
function spam_comment_post( $incoming_comment ) {  
    $enpattern = '/[一-龥]/u';  
    $jpattern = '/[ぁ-ん]+| [ァ-ヴ]+/u';  
    $http = '/[href="|rel="nofollow"|http:\/\/|<\/a>]/u'; 
    if(!preg_match($enpattern, $incoming_comment['comment_content'])) { 
        wp_die( "全英语呀,博主外语很捉急!" ); 
    } 
    if(preg_match($jpattern, $incoming_comment['comment_content'])){ 
        wp_die( "日文滚粗!Japanese Get out!日本語出て行け!" ); 
    } 
    if(preg_match($http, $incoming_comment['comment_content'])){ 
        wp_die( "万恶的发贴机!" );  
    }  
    return( $incoming_comment );  
}  
add_filter('preprocess_comment', 'spam_comment_post'); 

现在改用了一下,对于ajax提交评论的,可以的原来提示的位置继续提示,代码如下:

//纯英文评论拦截
function scp_comment_post( $incoming_comment ) {
    if( !preg_match('/[一-龥]/u', $incoming_comment['comment_content']) || preg_match('/[ぁ-ん]+| [ァ-ヴ]+/u', $incoming_comment['comment_content']) )
    {
        header('HTTP/1.1 301 Moved Permanently');
        die('<span style="color:red;">不会说中文的请一边玩去吧!</span>');
    }
    return( $incoming_comment );
}
add_filter('preprocess_comment', 'scp_comment_post');