ওয়ার্ডপ্রেসের Walker ক্লাসের কাজ ও ধারনা

WordPress Walker Class

মেনু, সাব মেনু, বা ক্যাটাগরি, সাব ক্যাটাগরি স্ট্যাইলে ডাটা দেখানো কে আমরা ট্রি মত ডাটা দেখানো বলি, যেখানে প্যারেন্ট আইটেমের আন্ডারে সাব আইটেম,  এর আন্ডারে আবার সাব আইটেম এভাবে দেখানো যায়,

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

সাধারণত এই ধরনের ডাটা স্ট্রাকচারে আইডি আর প্যারেন্ট আইডি অবশ্যই থাকে যাতে কোন আইটেম কোন আইটেমের আন্ডারে তা ডিফাইন করা যায়, আর কোন আইটেম যদি কোন আইটেম এর আন্ডারে না থাকে তবে তার প্যারেন্ট আইডি থাকে ০।

যেমন ধরুনঃ

  1. আইটেম ১, যার আইডি ১, আর প্যারেন্ট আইডি ০
    1. আইটেম ১ যার আইডি ৪ কিন্তু প্যারেন্ট আইডি ১, মানে এটা  আইটেম ১ এর চাইল্ড আইটেম
    2. আইটেম ২ যার আইডি ৫ কিন্তু প্যারেন্ট আইডি ১, মানে এটাও আইটেম ১ এর চাইল্ড আইটেম
  2. আইটেম ২, যার আইডি ২, আর প্যারেন্ট ০
  3. আইটেম ৩, যার আইডি ৩, আর প্যারেন্ট ০

ডাটাবেজ থেকে হোক বা আপনার কাস্টম এরে (array) থেকে হোক এই ধরনের ডাটা গুলি কে আপনি এই walker ক্লাস দিয়ে সহজেই ট্রি স্ট্রাকচার করে দেখাতে পারবেন,

এরে (array) দিয়ে করতে গেলে আপনার ডাটা স্ট্রাকচার অবশ্যই আইডি, প্যারেন্ট আইডি এভাবে সাজানো থাকতে হবে 🙂

উপরের উদাহরণের  walker এর আউটপুট হবে এমনঃ

চলুন আমরা একটা এরে (array) ব্যবহার করে দেখিঃ

এই walker ক্লাসটা কাজ করার জন্যে আপনার প্রতিটি আইটেম অবজেক্ট হিসেবে থাকতে হবে যেমনঃ

আপনাকে walker ক্লাসটা ব্যবহার করতে হবে এভাবেঃ

এখানে Walker_Simple_Example  ক্লাস টার প্যারেন্ট ক্লাস walker। আমরা শুধু  walker ক্লাসের মেথড গুলি ব্যবহার করেছি,

এখানে $db_fields  প্রপার্টিতে তে আমরা অবজেক্ট এর আইডি, আর প্যারেন্ট আইডি কোনটি তা বলে দিয়েছি, এটা আপনাকে অবশ্যই বলে দিতে হবে 🙂

আর আউটপুট দেখবেনঃ

পুরো কোডটি হবে এমনঃ

 

আপনি যদি কোন কাস্টম ট্যাক্সনমি নিয়ে কাজ করতে চান, ধরুন আমরা product_cat  এই কাস্টম ট্যাক্সনমির walker বানাব তাহলে আপনাকে $db_fields এর parent  কি এর ভ্যালু parent  আর id  কি এর ভ্যালু term_id  দিতে হবে, কারণ এখানে ট্যাক্সনমির লিস্ট টা নিতে আমরা get_categories()   ফাংশন টা ব্যাবহার করব, যেখানে id   নেম term_id  আর parent  হল parent

get_categories()   ফাংশনটার আউটপুট ডাম্পিং করলেই আপনি দেখবেন ব্যাপারটা, তো আমাদের ক্লাস টা আগের সবকিছু ঠিক রেখে দেখতে হবেঃ

আর আউটপুট দেখাবেনঃ

walker ক্লাসের যে মেথড দিয়ে আপনি আপনার html এর আউটপুট চেঞ্জ করতে পারেনঃ

start_lvl  মেথড দিয়ে ট্রি লেভেল শুরু করার সময়

end_lvl মেথড দিয়ে লেভেল শেষ করার সময়,

আর start_el, end_el  প্রতিটা আইটেমের html এলিমেন্ট শুরু শেষ করার স্ট্যাইল বলে দিতে পারবেন।

4 thoughts on “ওয়ার্ডপ্রেসের Walker ক্লাসের কাজ ও ধারনা”

Leave a Reply

Your email address will not be published. Required fields are marked *