আপনার ব্রাউজারে AD Blocker Active আছে

আপনার AD Blocker Active থাকার কারণে আমাদের সাইটটি লোড হচ্ছে না।
AD Blocker টি learn24bd এর জন্য ডিজেবল করে ব্রাউজার রিফ্রেস করুন।

ওয়ার্ডপ্রেস সাইটে সহজে কাস্টম রাউট হ্যান্ডেল করুন!

বিভাগ: ওয়ার্ডপ্রেস


ওয়ার্ডপ্রেস সাইটে কাস্টম ইউআরএল হ্যান্ডেলের ব্যবস্থা (URL rewrite) থাকলেও নতুনদের কাছে বিষয়টা একটু ঝামেলাপূর্ণ । নতুনদের কথা বাদ-ই দিলাম আমরা যারা অনেকদিন ওয়ার্ডপ্রেস নিয়ে কাজ করছি তাদেরও ওয়ার্ডপ্রেস এর URL rewrite করা নিয়ে একটু ঝামেলা পোহাতেই হয়। এমন একটি পিএইচপি ক্লাস মনে মনে খুজেছিলাম যেটি দিয়ে ওয়ার্ডপ্রেসে (WordPress) অনায়াসে কোন প্রকার WordPress URL rewite filter rules এর ঝামেলা ছাড়াই কাস্টম রাউট লিখে রিকুয়েস্টগুলো হ্যান্ডেল করা যাবে। খুজতে খুজতে পেয়েই গেলাম একটি ক্লাস আর আজ আমি আপনাদের এই ক্লাসটি আপনার থিমের সাথে কিভাবে যুক্ত করে সহজে যেকোন রাউট হ্যান্ডেল করতে পারবেন তার এ-টু-জেট বলল। এখানে আমি ওয়ার্ডপ্রেসের ডিফল্ট একটি খিমে যুক্ত করে দেখাব। আপনারা এই প্রক্রিয়ার আপনাদের যেকোন থিমের সাথে যুক্ত করে কাজ করতে পারবেন। তো চলুন শুরু করি কাজ।

ওয়ার্ডপ্রেস থিমের সাথে কনফিগারেশন

১ম ধাপ:  প্রথমে আপনি যে থিমটির সাথে কাজ করবেন তার ফোল্ডারে একটি custom route নামে ফোল্ডার তৈরী করুন এবং এতে দুটি পিএইচপি custom-route.php ও routes.php তৈরী করুন। অত:পর গিটহাবের এই ক্লাস ( wordpress custom route ) ফাইলটির কন্টেনগুলো কপি করে তৈরীকৃত custom-route.php ফাইলে পেস্ট করুন।

২য় ধাপ: এখন তৈরীকৃত routes.php ফাইলটি খুলে custom-route.php ক্লাস ফাইলটি যুক্ত করুন।

require_once 'custom-route.php';

৩য় ধাপ: এখন routes.php ফাইলটিকে আপনার থিমের functions.php ফাইলে যুক্ত করে দিলেই কাজ শেষ। functions.php ফাইলের শুরুতে নিচের লাইনটি লিখে সেইভ করুন।

require_once 'custom-route/routes.php';

ব্যবহার করার নিয়ম

 আমাদের কনফিগারেশনের কাজ শেষ! এবার আমরা শুধু আমাদের যে কাস্টম রাউটগুলো প্রয়োজন হবে তা routes.php ফাইলে লিখে কাজ করব। ধরুন আমাদের সাইটে কেউ http://example.com/my-custom-route এ GET request করলে আমরা তা যেভাবে হ্যান্ডেল করব তার উদাহারণ।

$theme_routes = new CustomRoutes();

$theme_routes->addRoute('my-custom-route',function(){
    echo 'This is custom route action';
});

এখন ধরুন আপনি আপনার সাইটের জন্য api/product এই endpoint এ একটি প্রোডাক্টের জন্য এপিআই করতে চান তাহলে লিখতে হবে।

$theme_routes->addRoute('api/product',function(){
    if($_REQUEST['cat_id']){
        echo 'Category ID: '.$_REQUEST['cat_id'];
    }
});

বিষটি আরো একটু পরিষ্কার হওয়ার জন্য এই স্কিনশটটি দেখলে বুঝা যাবে।

wp-routes-example.png

এখন আপনি এই routes.php ফাইলে যেকোন সংখ্যক কাস্টম রাউট লিখে তার জন্য সহজে রিকুয়েস্ট হ্যান্ডেল করতে পারবেন। এই রাউট ক্লাসটির addRoute মেথডটিতে আরো কিছু প্যারামিটার পাঠানো যায়। আপনি ক্লাস ফাইলটির হেডারে সংক্ষিপ্ত ইনস্ট্রাকশন পড়লেই বুঝে যাবেন। পোস্টটি পড়ে আপনার ভাল লাগলে অবশ্যই শেয়ার করে অন্যদের উপকৃত করবেন।

লিখায় কোন প্রকার ভুল-ত্রুটি ক্ষমা সুন্দর দৃষ্টিতে দেখবেন।

 


Share