چگونه از پلاگین 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 بر می گرداند والا اسپم نیست.

در همین رابطه :   تقويم هاي ارديبهشت 90 [ارديبهشت با طعم وردپرس]

2 Comments

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

پاسخ دهید

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

More in CSS
روش های اضافه کردن CSS به سایت

مقالات این سری آموزشی : آشنایی با CSS و شروع کار با آن آموزش انتخابگر ها (Selectors) در CSS روش...

Close