کد جلوگیری از کامنت های اسپم در وردپرس بدون پلاگین
کامنت های اسپم در وردپرس – حتما برای شما هم پیش آمده که کامنت هایی به زبان انگلیسی و دارای لینک های طولانی و زیادی می باشد که به عنوان اسپم شناخته می شود ثبت می گردد .
در این آموزش این نوع کامنت ها را فیلتر کرده و به طور مستقیم به زباله دان نظرات می فرستیم .
ابتدا دموی پایین را جهت درک بهتر مشاهده کنید :
دموی برنامه
کد فیلتر نظرات اسپم
کد زیر را در فایل 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; }
ارسال نظر