Advertisement
  1. Code
  2. WordPress
Code

ওয়ার্ডপ্রেসে ডায়নামিক পেজ টেমপ্লেট, পার্ট ২

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Dynamic Page Templates in WordPress.
Dynamic Page Templates in WordPress, Part 1
Dynamic Page Templates in WordPress, Part 3

Bengali (বাংলা) translation by Arnab Wahid (you can also view the original English article)

এই টিউটোরিয়ালের পার্ট ১ এ আমরা আপনাদের দেখিয়েছি ডায়নামিক পেজ টেমপ্লেটের বেসিক কনসেপ্ট ও চাইল্ড থিম দিয়ে কিভাবে পেজ টেমপ্লেট তৈরি করতে হয়।

এই টিউটোরিয়ালে আমরা ডায়নামিক পেজ টেমপ্লেট নিয়ে আলোচনা করব ও দেখবো সেটা কিভাবে বানানো ও ওয়ার্ডপ্রেস প্রজেক্টে ব্যবহার করা যায়।

প্রথম টিউটোরিয়ালের বেসিক টেমপ্লেট কিভাবে বর্থিত করে ডায়নামিক ও ফ্লেক্সিবল করে নেয়া যায় তা আমরা এই টিউটোরিয়ালে দেখবো!

ডায়নামিক পেজ টেমপ্লেটঃ ফ্লেক্সিবল অ্যাপ্রোচ

তো, কিভাবে একটি পেজ টেমপ্লেট আরও ফ্লেক্সিবল করা যায়? এটি কি উপকারে আসে?

মনে করেন একটি পোর্টফোলিও পেজ টেমপ্লেট দিয়ে একটি পোর্টফোলিও পেজের সকল পোর্টফোলিও আইটেমের গ্যালেরি শো করা হয়।

একটি ডায়নামিক পেজ টেমপ্লেটের সাহায্য এই পোর্টফোলিওর একেক আইটেম একেক সাইজে শো করা সম্ভব হবে। এই কাজ করতে আমাদের ৩টি আলাদা পেজ টেমপ্লেট দরকার হবে।

এই ফাংশনের জন্য একটি সাইজ ড্রপ ডাউন থাকলে সহজেই সিলেক্ট করে নেয়া যায় (যেমন ছোট, মাঝারি, বড়)। এটি পেজ টেমপ্লেটের সাইড বক্স হিসেবে থাকবে।

Don't Repeat Yourself (DRY) সফটওয়্যার ডেভেলাপমেন্ট প্রিন্সিপাল ফলো করে একটি পেজ টেমপ্লেটে এই ৩টি অপশন রাখাই ভালো, তাহলে বার বার কোড রিপিট করতে হবে না।

সকল পেজ টেমপ্লেটই কি ডায়নামিক হতে হবে?

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

কিন্তু এই টিউটোরিয়ালে আমরা যেমন পেজ টেমপ্লেট নিয়ে কাজ করব, সেগুলো ডায়নামিক হলেই সুবিধা বেশি।

কন্টাক্ট ফর্ম পেজ টেমপ্লেট ডায়নামিক পেজ টেমপ্লেটের একটি ভালো উদাহরণ। কাস্টম কন্টেন্ট অ্যাড করে এই পেজের ফাংশনালিটি বাড়িয়ে নেয়া যায়।

উদাহরণস্বরূপ, কাস্টম কন্ট্রোল দিয়ে ফিক্সড ফিল্ড না দিয়ে ডায়নামিক ভাবে ভিন্ন ভিন্ন ফিল্ড ডিসপ্লে করা যায়। যেমন স্প্যাম সাবমিশনের জন্য একটি কাস্টম ক্যাপচা ফিল্ড?  এছাড়া আরও অনেক ডায়নামিক ফাংশনালিটি কন্টাক্ট টেমপ্লেটে অ্যাড করা যায়।

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

আমাদের প্রথম ডায়নামিক টেমপ্লেট

কিভাবে প্রতিটি পেজ টেমপ্লেট পার্ট কাজ করে তা দেখার জন্য আমরা একটি বেসিক পেজ টেমপ্লেট তৈরি করব। এই প্রসেসে আমরা পেজে কাস্টম কন্ট্রোল অ্যাড করব। সেটা পরবর্তীতে পেজ টেমপ্লেট আউটপুটের কন্ট্রোল হিসেবে কাজ করবে।

আমরা যেই কাস্টম পেজ টেমপ্লেট কন্ট্রোল অ্যাড করব, সেটা হলঃ

  • টেক্সট বক্স
  • টেক্সটএরিয়া
  • চেক বক্স
  • রেডিও বাটন
  • ড্রপ ডাউন সিলেক্ট বক্স

সাধারণত, সকল কন্ট্রোল সরাসরি পেজ টেমপ্লেটের নিচে অ্যাড করা হয়, যেন সহজেই বোঝা যায় যে এগুলা বিশেষ ভাবে পেজ টেমপ্লেটের জন্য ব্যবহার হচ্ছে।

ওয়ার্ডপ্রেস এই কাজ করার জন্য কোন হুক দেয় না, তাই আমাদের নিজেদের কিছু কাস্টম মেটা বক্স তৈরি করে নিতে হবে। পার্ট ৩ এ আমরা দেখাবো কিভাবে এই সমস্যা সমাধান করা যায়।

ওয়ার্ডপ্রেস ডেভেলাপমেন্টে হুক একটি দরকারি জিনিষ। এটা ডেভেলাপারদের কোড বেস সহজে এক্সটেন্ড করে নিতে সহায়তা করে। কারণ, কাস্টম কোড ওয়ার্ডপ্রেস আপডেটের সময় মুছে যায় (যেটা ঘনঘন হয়)।

পেজ এডিটর স্ক্রিনে মেটাবক্স ডিসপ্লে করার জন্য ১ম পারটে তৈরি করে চাইল্ড থিমের  init() মেথডের ভিতরে load-post.php এবং load-post-new.php  অ্যাড করে নিন।

মেটাবক্স পেজ এডিটরে ডিসপ্লে করার জন্য আমরা এখানে দুইটি ওয়ার্ডপ্রেস হুক ব্যবহার করেছি। পুরোনো পেজ এডিট বা নতুন পেজ তৈরি, দুটাই একই নিয়মেরর হবে। পোষ্ট মেটাডাটা হ্যান্ডেল করার জন্য save_post হুক ব্যবহার করা হয়েছে, যেটা নিয়ে আমরা একটু পরেই কথা বলব।

মেটাবক্স ক্রিয়েট ও ডিসপ্লে করার জন্য এই ক্লাস মেথড ব্যবহার করুন।

আমরা মেটাবক্স নিয়ে বেশি আলোচনা করব না, সেটা নিয়ে আরেকটি টিউটোরিয়াল লেখা যায়। কিন্তু নিচের কোডে দেয়া পয়েন্টগুলো খেয়াল করুনঃ

  • page_template_meta_box() এবং add_page_template_meta_box() ক্লাস মেথড ওয়ার্ডপ্রেসে মেটাবক্স রেজিস্টার করে।
  • add_page_template_meta_box()'page' প্যারামিটার দেয়ার কারণে শুধু পেজ এডিটরে এই মেটাবক্স দেখা যাবে, অন্য কোথাও দেখা যাবে না।
  • display_page_template_meta_box() ক্লাস মেথড ওয়ার্ডপ্রেসকে আরও সিকিউর করতে একটি nonce সেটাপ করে।

এখন পেজ এডিটরে মেটাবক্সটি দেখা যাবে।

A new page meta box

এই মূহুর্তে এটি খালি, আসুন এতে কিছু কন্ট্রোল অ্যাড করি।

কাস্টম কন্ট্রোল অ্যাড করা

আগে যেমন বলেছি, আমরা এখন মেটাবক্সে টেক্সট বক্স, টেক্সট এরিয়া, চেকবক্স, রেডিও বাটন ও সিলেক্ট বক্স অ্যাড করব। nonce ফাংশনের নিচে এই display_page_template_meta_box() মেথড অ্যাড করুন।

এখন আমরা মেটাবক্সের HTML অ্যাড করব, আর একটি লোকাল ভ্যারিয়েবল সেট করব যেখানে মান স্টোর থাকবে।

প্রতি কন্ট্রোল একটি প্যারাগ্রাফ ট্যাগের ভিতরে থাকবে, যেটা একটি লোকাল ভ্যারিয়েবল দিয়ে আপডেট হবে। মেটাবক্সে সব সময় কারেক্ট সেটিংস দেখা যাবে।

কিন্তু বর্তমান মেটাবক্সের কন্ট্রোল ডাটা ওয়ার্ডপ্রেসের ডাটাবেসে সেভ না হলে এই মান আপডেট হবে না।

একটু আগে আমরা চাইল্ড থিমে যেই হুক রেজিস্টার করেছিলাম সেটা এখন ব্যবহার করব।

save_page_template_meta() ক্লাস মেথড ডাটা সেভিং হ্যান্ডেল করে। এটা মেটাবক্সের ডাটা nonce ভ্যারিফাই করে ডাটাবেসের সেভ করে আর পেজ এডিটর স্ক্রিনের মেটাবক্সে ডিসপ্লে করে।

সব ঠিক মত হলে সেই মান $_POST ভ্যারিয়েবলে স্টোর হয়। প্রতিবার ফর্ম সাবমিশনে এই ভ্যারিয়েবল সেট হয়।

ফাইনালি, ওয়ার্ডপ্রেসের মেটাবক্সের মেটা ডাটা বর্তমান পেজে ডিসপ্লে হয়।

কাস্টম কন্ট্রোল অ্যাড করার পর মেটাবক্স এমন দেখা যাবে।

Adding controls to the meta box

টেক্সটবক্সে কিছু টেক্সট লিখুন, চেক বক্সে সিলেকশন করুন, রেডিও বাটন ব্যবহার করুন, সিলেক্ট বক্স চেক করুন। সেভ করে দেখুন আপডেট বা চেঞ্জ হয় কিনা। পেজ এদিটর রিলোড হওয়ার পর মেটাবক্সে আপনার এন্টার করা ডাটা দেখা যাবে।

Populating the meta box

চাইল্ড থিমের পুরো functions.php ফাইলের কোড নিচে দেয়া হল।

শেষ একটি কাজ বাকি। test-page-template.php ফাইল ওপেন করে সেটার কোড এই কোড দিয়ে রিপ্লেস করে নিন।

দেখে নিন 'Test Page Template' বর্তমান পেজ টেমপ্লেট হিসেবে সিলেক্ট করা আছে কিনা।

Viewing the output of the meta box

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

পরিশেষ

এই টিউটোরিয়ালে আমরা দেখলাম, কিভাবে একটি ডায়নামিক পেজ টেমপ্লেট তৈরি করতে হয়। যদিও এই মুহূর্তে আমাদের টেমপ্লেট ফাংশনাল, কিন্তু এটি খুব একটা ইউজফুল না।

এই সিরিজের ৩য় এবং ফাইনাল টিউটোরিয়ালে আমরা দেখবো, কিভাবে অনেক রকম ডায়নামিক পেজ টেমপ্লেট তৈরি করা যায়, যেগুলো আপনি বিভিন্ন কাজে আপনার ওয়ার্ডপ্রেস প্রজেক্টে ব্যবহার করতে পারবেন।

আপনার কোন প্রশ্ন থাকলে তা নিচে কমেন্ট সেকশনে জানাতে পারেন। আমি জানতে চাই এই টিউটোরিয়াল নিয়ে আপনাদের মতামত কি।

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.