افزودن کپچا به فرم نظرات وردپرس
افزودن کپچا به فرم نظرات وردپرس – برای افزودن کپچای متنی ساده به فرمهای وردپرس و همچنین جلوگیری از دیدگاه اسپم ، میتوانید از قطعه کد زیر استفاده کنید. این کد با استفاده از فیلتر و اکشنهای وردپرس، یک فیلد کپچای متنی به فرمهای نظرات وردپرس اضافه میکند. در این مثال، کاربر باید یک عدد را وارد کند تا ثابت کند که ربات نیست.
در دنیای دیجیتال امروز، هرزنامهها یکی از بزرگترین مشکلاتی هستند که کاربران و وبسایتها با آن مواجهاند. این پیامهای ناخواسته که میتوانند به صورت ایمیل، نظر در وبسایت یا حتی درخواستهای جعلی در فرمهای آنلاین ظاهر شوند، علاوه بر ایجاد اختلال، میتوانند امنیت اطلاعات و تجربه کاربران را تهدید کنند. یکی از راههای مؤثر برای مقابله با هرزنامهها، استفاده از کپچا است.
کپچا چیست؟
کپچا (CAPTCHA) مخفف عبارت Completely Automated Public Turing test to tell Computers and Humans Apart است. به طور خلاصه، کپچا یک آزمون خودکار است که طراحی شده تا بتواند انسانها را از رباتها تشخیص دهد. معمولاً این آزمونها به صورت تصاویری که کاربران باید متن درون آنها را وارد کنند یا سوالاتی که نیاز به درک انسانی دارند ظاهر میشوند. به این ترتیب، هر کاربری که به سایت یا فرمهای آن دسترسی دارد، مجبور به گذراندن این آزمون خواهد بود، و اگر ربات باشد، به احتمال زیاد نمیتواند از آن عبور کند.
افزودن کپچا به فرم نظرات وردپرس
ما قصد داریم بدون افزونه فقط با کد برای شما این امکان را به سایتتان بیفزاییم
مرحله 1: افزودن فیلد کپچا به فرم نظرات
این کد را به فایل functions.php
قالب خود اضافه کنید:
function add_text_captcha_field() {
echo '<div class="col-12 col-m-6"><input type="text" name="captcha" id="captcha" placeholder="شبانه روز چند ساعت است؟" value="" required /></div>';
}
add_action('comment_form_logged_in_after', 'add_text_captcha_field');
add_action('comment_form_after_fields', 'add_text_captcha_field');
ما برای سایت پنگاش سوال شبانه روز چند ساعت است؟
را نوشته ایم و این را با استفاده از یک تابع متغییر کرده ایم
مرحله 2: اعتبارسنجی کپچا
در این قسمت بررسی میکنیم که کاربر جواب صحیح را وارد کرده باشد. این کد را هم به فایل functions.php
اضافه کنید:
function verify_text_captcha($commentdata) {
if (!is_user_logged_in()) {
if (empty($_POST['captcha']) || intval($_POST['captcha']) !==24) {
wp_die(__('پاسخ کپچا اشتباه است. لطفاً دوباره تلاش کنید.'));
}
}
return $commentdata;
}
add_filter('preprocess_comment', 'verify_text_captcha');
در کد بالا عدد 24 را نیز باید تغییر دهید.
که هر دو کد بر روی هم را می توانید در فانکشن به صورت زیر اضافه کنید
function add_text_captcha_field() {
echo '<div class="col-12 col-m-6"><input type="text" name="captcha" id="captcha" placeholder="شبانه روز چند ساعت است؟" value="" required /></div>';
}
add_action('comment_form_logged_in_after', 'add_text_captcha_field');
add_action('comment_form_after_fields', 'add_text_captcha_field');
function verify_text_captcha($commentdata) {
if (!is_user_logged_in()) {
if (empty($_POST['captcha']) || intval($_POST['captcha']) !==24) {
wp_die(__('پاسخ کپچا اشتباه است. لطفاً دوباره تلاش کنید.'));
}
}
return $commentdata;
}
add_filter('preprocess_comment', 'verify_text_captcha');
نحوه کارکرد کد:
- add_text_captcha_field: این تابع یک فیلد ساده با یک سوال ریاضی به فرم نظرات اضافه میکند.
- verify_text_captcha: این تابع قبل از ارسال نظر، بررسی میکند که آیا مقدار صحیحی در فیلد کپچا وارد شده است یا خیر. اگر جواب اشتباه باشد، پیغام خطایی نمایش داده میشود و نظر ثبت نمیشود.
با این کد میتوانید کپچای متنی سادهای به فرم نظرات وردپرس اضافه کنید تا از ارسال اسپم جلوگیری شود.
تصویری از همین سایت برای شما قرار می دهم
حال توجه کنید با توجه به فارسی بودن کپچا به همین راحتی جلوی بیش از 98 درصد نظرات اسپم را گرفته اید