কোনও প্লাগিন ছাড়াই ওয়ার্ডপ্রেস সাইটের কমেন্ট স্প্যাম বন্ধ করুন

বাংলা ব্লগওয়ার্ডপ্রেস৪ আগস্ট, ২০১৫

কোনও প্লাগিন ছাড়াই ওয়ার্ডপ্রেস সাইটের কমেন্ট স্প্যাম বন্ধ করুন

স্প্যাম কমেন্ট বন্ধ করার জন্য ইন্টারনেটে এবং ওয়ার্ডপ্রেস ডাইরেক্টরিতে অনেক প্লাগিন আছে। আপনি সেই প্লাগিনগুলি ব্যবহার করে সহজেই স্প্যাম কমেন্ট বন্ধ করতে পারবেন। কিন্তু আপনার যদি কোডিং সম্পর্কে সামান্য ধারনা থাকে, তাহলে সহজেই এই কাজটি করতে পারবেন কোনও প্লাগিন ইন্সটল করা ছাড়াই।

সাধারণত স্প্যামাররা কমেন্ট বট এর মাধ্যমে কোনও সাইটের কমেন্ট ফর্ম পূরণ করে কমেন্ট সাবমিট করে থাকে। সুতরাং আমাদের এমন কিছু একটা করতে হবে যা দেখে ওয়ার্ডপ্রেস বুঝবে যে কমেন্টটি কোনও মানুষ করে নি, কমেন্টটি করা হয়েছে কোনও বট বা সফটওয়্যার এর মাধ্যমে।

কমেন্ট বট আইডেন্টিফাই করার সবচেয়ে ভালো উপায় হচ্ছে কমেন্ট ফর্মে ক্যাপচা ব্যবহার করা। কিন্তু অনেকেই তাদের সাইটে ক্যাপচা ব্যবহার করতে চান না। আপনিও যদি তাদের দলে হয়ে থাকেন, তাহলে এই সিস্টেমটি ব্যবহার করতে পারেন।

এই সিস্টেমটি অনেক সহজ সেই সাথে অনেক কাজের। আমরা এখানে জাভাস্ক্রিপ্ট ব্যবহার করবো। কমেন্ট বট যখন কোনও সাইটের ফর্ম পূরণ করে তখন সেখানে জাভাস্ক্রিপ্ট কাজ করে না। তাই জাভাস্ক্রিপ্ট দিয়ে খুব সহজেই বট কমেন্ট বা স্প্যাম কমেন্ট বন্ধ করা যায়।

প্রথম ধাপঃ

প্রথমে আমরা জাভাস্ক্রিপ্ট এর মাধ্যমে কমেন্ট ফর্মে একটা লুকানো ইনপুট ফিল্ড যোগ করবো। যেটি শুধুমাত্র কোনও ব্রাউজার দিয়ে ঢুকলেই কাজ করবে (কাজ করবে বলতে লুকিয়ে থেকেই কাজ করবে)।

ইনপুট ফিল্ড যোগ করতে নিচের কোডটুকু আপনার থিমের জাভাস্ক্রিপ্ট ফাইলে যোগ করে দিন অথবা স্ক্রিপ্ট ট্যাগের মাধ্যমে ফুটারে যোগ করে দিন।

$( "#commentform" ).on('submit', function(e){
 $( this ).append( '<input type="hidden" name="is_human_comment" value="1">' );
});
Code language: JavaScript (javascript)

ইনপুট ফিল্ড যোগ হয়ে যাবে। আপনি ইন্সপেক্ট এলিমেন্ট অথবা কোড সোর্স এ গিয়ে চেক করতে পারেন।

দ্বিতীয় ধাপঃ

এখন ইনপুট ফিল্ডের ডাটা চেক করার জন্য একটা ফাংশনটি ক্রিয়েট করবো। আপনার পছন্দের কোড এডিটরে থিমের রুট থেকে functions.php খুলুন। তারপর নিচের ফিলটারটি সেখানে যোগ করে দিন।

add_filter( 'preprocess_comment', 'verify_human_comment' );
 
function verify_human_comment( $commentdata ) {
 if ( ! isset( $_POST['is_human_comment'] ) )
 wp_die( __( 'You are a spammer!' ) );
 
 return $commentdata;
}
Code language: PHP (php)

এই ফাংশনটি কোনও কমেন্ট ডাটাবেজে পোষ্ট করার আগে চেক করে দেখবে কমেন্ট ডাটা তে আমাদের তইরি করা লুকানো ফিল্ডটার ভেল্যু আছে কি না (এটার একটা ডিফল্ট ভেল্যু দেয়া আছে)। আর আগেই বলেছি এই ফিল্ডটা শুধুমাত্র ব্রাউজার দিয়ে কমেন্ট করলেই কাজ করবে। তাই কোনও বট বা সফটওয়্যার কমেন্ট পোষ্ট করার চেষ্টা করলে “You are a spammer!” এই মেসেজটি পাবে।

নোটঃ যদি কারো ব্রাউজারে জাভাস্ক্রিপ্ট ডিজেবল করা থাকে, তাহলে সে কমেন্ট করতে পারবে না।

আরও অনেক ভাবেই স্প্যামিং বন্ধ করা যায়, এটা একটা মেথড মাত্র। আশা করি সহজভাবেই বুঝাতে পেরেছি, কারো যদি বুঝতে সমস্যা হয় তাহলে কমেন্টে জানান।

এই টপিকের আরও কিছু পোস্টঃ

© সোলায়মান হায়দার