کد جلوگیری از کامنت های اسپم در وردپرس بدون پلاگین

کد جلوگیری از کامنت های اسپم در وردپرس بدون پلاگین

کامنت های اسپم در وردپرس – حتما برای شما هم پیش آمده که کامنت هایی به زبان انگلیسی و دارای لینک های طولانی و زیادی می باشد که به عنوان اسپم شناخته می شود ثبت می گردد .

در این آموزش این نوع کامنت ها را فیلتر کرده و به طور مستقیم به زباله دان نظرات می فرستیم .
ابتدا دموی پایین را جهت درک بهتر مشاهده کنید :

دموی برنامه


کد فیلتر نظرات اسپم

کد زیر را در فایل functions.php استفاده کنید :

add_filter('comment_post_redirect' , 'rpd_filter_comment' , 10 , 2);

function rpd_filter_comment($location , $comment){
	$comment = (array)$comment;
	$comment_content = $comment['comment_content'];
	$comment_ID = $comment['comment_ID'];
	
	$isPersianWord = filter_persian_strings($comment_content);
	if(!$isPersianWord)
		wp_trash_comment($comment_ID);
	
	return $location;
}

function filter_persian_strings($text){
	$pattern = '\u0627|\u0622|\u0628|\u067e|\u062a|\u062b|\u062c|\u0686|\u062d|\u062e|\u062f|\u0630|\u0631|\u0632|\u0698|\u0633|\u0634|\u0635|\u0636|\u0637|\u0638|\u0639|\u063a|\u0641|\u0642|\u06a9|\u06af|\u0644|\u0645|\u0646|\u0648|\u0647|\u06cc';
	$tmpText = json_encode($text);
	$patternList = explode('|' , $pattern);
	$counter = 0;
	$hasPersianChar = false;
	foreach($patternList as $pl){
		if(strpos($tmpText , $pl)!==false) $counter++;
		
		if($counter == 3){
			$hasPersianChar = true;
			continue;
		}
	}
	
    return $hasPersianChar;
}

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us