چگونه از پلاگین Akismet وردپرس برای تشخیص اسپم استفاده کنم؟

هر گاه شما بخواهید در وردپرس یک فرم تماس , فرم نظرخواهی و هر فرم دیگری ایجاد کنید حتما باید فکری به حال بمباران اسپم ها بکنید.وگرنه خواهید دید که در زمان کوتاهی انبوهی از اطلاعات بیهوده اسپم به فرم شما سرازیر شدند.

یکی از بهترین راه هایی که می تواند سد محکمی جلوی اسپمرها ایجاد کند پلاگین توکار Akismet وردپرس است.تابع php زیر از پلاگین آکیسمت وردپرس برای چک کردن محتوای اسپم استفاده می کند.کافیست کد زیر را در انتهای فایل functions.php قالب فعلی قرار دهید و هر موقع نیاز به چک کردن محتوای اسپم داشتید این تابع را فراخوانی کنید.فقط دقت کنید که پلاگین Akismet باید فعال باشد.

function is_spam_akismet($args){
    global $akismet_api_host, $akismet_api_port;
    
    $query['user_ip']       = preg_replace( '/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR'] );
    $query['user_agent']    = (isset( $_SERVER['HTTP_USER_AGENT'] )) ? $_SERVER['HTTP_USER_AGENT'] : '';
    $query['referrer']      = (isset( $_SERVER['HTTP_REFERER'] )) ? $_SERVER['HTTP_REFERER'] : '';
    $query['blog']          = get_option( 'home' );
    $query['blog_lang']     = get_locale(); // default 'en_US'
    $query['blog_charset']  = get_option( 'blog_charset' );
    $query['comment_type']  = 'forum-post'; //For more info http://bit.ly/2bVOMay
    
    $query['comment_content'] = $args["post_content"];
    $query['permalink']     = $args['referrer'];
    $query['comment_author'] = $args["user_name"];
    $query['comment_author_email'] = $args["user_email"];

    //$query['is_test']  = "1";  // uncomment this when testing spam detection
    //$query['comment_author']  = "viagra-test-123";  // uncomment this to test spam detection

    $query_string = http_build_query($query);
    
    $spam = false;
    if ( is_callable( array( 'Akismet', 'http_post' ) ) ) { //Akismet v3.0+
        $response = Akismet::http_post( $query_string, 'comment-check' );
    } else {
        $response = akismet_http_post( $query_string, $akismet_api_host,
            '/۱.۱/comment-check', $akismet_api_port );
    }
    if ( 'true' == $response[1] ) {
        $spam = true;
    }

    return $spam;
}

 

نحوه استفاده

به این شکل می توانید هر کجا نیاز بود این تابع را فراخوانی و استفاده کنید

$args["post_content"] = $_POST["content"];
$args["user_name"] = $_POST["sender_name"];
$args["user_email"] = $_POST["sender_email"];

if(is_spam_akismet($args)){
    //do something with spam
}

اگر این کد اسپم بودن محتوا را تشخیص داد مقدار true بر می گرداند والا اسپم نیست.

در همین رابطه :   5 ویژگی جالب که در نسخه آینده وردپرس (3.3) خواهیم دید !

2 Comments

  1. سلام. من یکی از خوانندگان همیشگی وب سایت شما هستم و اط مطالب خوب و مفید وب سایت تون استفاده می کنم. لطفا در سایت مطالب تازه تری قرار دهید. من از خواندن مطالب سایت شما لذت می برم.

    1. سلام . خیلی از نظر دلگرم کننده شما ممنونم . سعی من هم اینه با اینکه دست تنها هستم فعلا، در بین پروژه ها و کارها حتما وقتی برای مطالب جدید بزارم.
      مرسی

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

")/*]]>*/
More in Wordpress
دانلود ۶۸ قالب برتر رایگان وردپرس در سال ۲۰۱۷

کم کم به پایان سال 2017 میلادی نزدیک می شویم و می خواهیم گلچینی از بهترین و جدیدترین قالب های...

Close