Saturday, March 19, 2011

ওয়ার্ডপ্রেসে কাস্টম ফিল্ডের ব্যবহার

 দিন দিন সি.এম.এস হিসেবে ওয়ার্ডপ্রেসের জনপ্রিয়তা বেড়ে চলেছে। পূর্বের তুলনায় ওয়ার্ডপ্রেসের জনপ্রিয়তা বাড়ার একটি অন্যতম কারণ হল ওয়ার্ডপ্রেসের কাস্টম ফিল্ডের (Custom Field) এর ব্যবহার। এই কাস্টম ফিল্ড ই ওয়ার্ডপ্রেসকে শুধুমাত্র একটি ব্লগিং সফটওয়্যারের ভিতর সীমাবদ্ধ রাখেনি। ওয়ার্ডপ্রেস সি.এম.এস দিয়ে এখন যেকোন ধরণের সাইট বানানো সম্ভব।


হতে পারে সেটি একটি ই-কমার্স সাইট অথবা হতে পারে কোন সোস্যাল কমিউনিটি সাইট অথবা হতে পারে কোন কোম্পানির Corporate সাইট। পূর্বে ওয়ার্ডপ্রেস কে বলা হত ব্লগিং সি.এম.এস। কিন্তু এখন ওয়ার্ডপ্রেস একটি পূর্ণাঙ্গ কন্টেন্ট ম্যানেজমেন্ট সিস্টেম (সি.এম.এস)।

কাস্টম ফিল্ড কি?

ওয়ার্ডপ্রেস ব্লগে ব্লগ লেখার সময় আপনারা পোস্টের শিরোনাম, এডিটরে আপনার লেখাটি লিখে প্রয়োজনীয় ক্যাটাগরি সিলেক্ট করে এবং ট্যাগ করে পোস্টটি পাবলিশ করে দেন। ওয়ার্ডপ্রেসের বেসিক কাজ এটুকুই। কিন্তু আপনি যদি চান আপনার পোস্টের সাথে নিজের কিছু ফিল্ড যুক্ত করে দিতে পারেন। যেমন মনে করুন আপনার একটি হার্ডওয়্যারের দোকান আছে। আপনি সেই দোকানের সকল প্রোডাক্টের তথ্য দিয়ে একটি সাইট বানাতে চাচ্ছেন। সেক্ষেত্রে ধরে নিতে পারেন ব্লগের একেকটি পোস্ট একেকটি প্রোডাক্ট এবং প্রতিটি পোস্টের শিরোনাম হল প্রোডাক্টের নাম ও প্রোডাক্টের বর্ণনা হল আপনি এডিটরে যা লিখবেন। প্রোডাক্টের বিভিন্ন বৈশিষ্ট্যের মধ্যে কিছু বৈশিষ্ট্য সবগুলো প্রোডাক্টের জন্য কমন। যেমন – দাম,রঙ,সাইজ ইত্যাদি। আপনি চাচ্ছেন সমস্ত প্রোডাক্ট এর তথ্য দেয়া শেষ হলে আপনি একটি সার্চ বক্স তৈরী করবেন যেটি এই কমন বৈশিষ্ট্য গুলোর মাধ্যমে প্রোডাক্ট খুঁজে দিবে।সেক্ষেত্রে যদি প্রোডাক্টের এই কমন বৈশিষ্ট্যগুলো যদি আপনি ঢালাওভাবে এডিটরে বর্ণনামূলকভাবে লিখে দেন তাহলে আপনার পক্ষে পরবর্তীতে প্রোডাক্টের দাম দিয়ে সার্চ করা সম্ভব হবেনা। সম্ভব তখনই হবে যদি আপনি প্রতিটি প্রোডাক্টের সাথে এই সাধারণ ফিল্ড গুলো আলাদা আলাদা কাস্টম ফিল্ড হিসেবে লিখে দিন। তাহলে পরবর্তীতে কাস্টম ফিল্ডের ভিতর আলাদা আলাদা করে সার্চ দেয়া সম্ভব হবে।
উপরের উদাহরণটি থেকে আশা করি বুঝে গেছেন যে কিভাবে ওয়ার্ডপ্রসে কাস্টম ফিল্ড ব্যবহার করে কিভাবে ওয়ার্ডপ্রেস কে ব্লগিং সীমাবদ্ধতা থেকে বের করে আনা যায়।এবার তাহলে টেকনিক্যাল বিষয়গুলোতে আসা যাক।

কাস্টম ফিল্ড সিনট্যাক্স

আপনি আপনার ওয়ার্ডপ্রেস এডমিন প্যানেলে গিয়ে নতুন একটি পোস্ট লিখতে যান। দেখবেন এডিটরের নিচেই “Custom Field Template” বলে একটি বক্স আছে (বিঃদ্রঃ টেকনোলজি টুডে ব্লগ এডমিন প্যানেলে আপনারা এই বক্সটি দেখতে পাবেন না কারণ কিছু সিক্যুরিটি ইস্যুর কারণে আমরা এটা দেখানো বন্ধ রেখেছি।)। আপনাদের বোঝার সুবিধার জন্য আমি নিচে একটি ছবি দিয়ে দেখালাম -



আপনাকে প্রথমে কাস্টম ফিল্ডের সিনট্যাক্স জানতে হবে। কাস্টম ফিল্ড তৈরী করা খুব সহজ। এর জন্য আপনাকে একটি নাম এবং একটি ভ্যালু দিতে হবে। নামটি কন্সট্যান্ট কিন্তু ভ্যালু বিভিন্ন পোস্টের জন্য পরিবর্তিত হতে পারে। একটি ব্যবহারিক উদাহরণ – ধরুন আপনি একটি ক্যামেরার সাইট বানাচ্ছেন। আপনার প্রতিটি পোস্টের জন্য ক্যাটাগরি আছে যেমন – Review, New ইত্যাদি এবং আপনি প্রতিটি পোস্টকে ম্যানুফ্যাকচারারের নাম দিয়ে ট্যাগ করছেন। কিন্তু আপনি চাচ্ছেন প্রতিটি ক্যামেরার দাম এবং স্পেসিফিকেশন দেখাতে। এর জন্য সবচেয়ে সহজ হল আপনি ‘price’ এবং ‘camera_specs’ নামে দুটি কাস্টম ফিল্ড তৈরী করলেন এবং ভ্যালু সেট করলেন যথাক্রমে ক্যামেরার দাম এবং স্পেসিফিকেশন দিয়ে। নিচের ছবি দেখলে বুঝতে পারবেন কি বলতে চাচ্ছি-


প্রতিটি কাস্টম ফিল্ডের নাম এবং ভ্যালু সেট করে “Add Custom Field” বাটনে ক্লিক করলে দেখবেন কাস্টম ফিল্ডটি যোগ হয়ে গেছে এবং নতুন আরেকটি কাস্টম ফিল্ড যোগ করার অপশন দিয়ে দিচ্ছে। এই কাস্টম ফিল্ড গুলো আপনার ওয়ার্ডপ্রেস ফ্রন্ট এন্ড টেম্পলেটে দেখানো খুব সহজ। আপনার টেম্পলেটের single.php ফাইলে যেখানে কাস্টম ফিল্ডটি দেখাতে চান সেখানে নিচের কোডটি লিখুন -
[php]
ID, “camera_specs”, true); ?>
[/php]
get_post_meta() ফাংশনটি শুধু camera_specs এর ভ্যালুটি রিটার্ন করবে। আপনি চাইলে এই ভ্যালুটিকে নিজের ইচ্ছামত HTML কোডে দেখাতে পারেন, নিজের মত স্টাইল করতে পারেন (আমি ধরে নিচ্ছি যারা এই পোস্টটি কাজে লাগাবেন তাদের HTML সম্পর্কে সম্পূর্ণ ধারণা আছে)।
কাস্টম ফিল্ড গুলো conditional হতে পারে। মনে করুন আপনি যে ক্যামেরার স্পেসিফিকেশন দেখাতে চাচ্ছেন সেটির কাস্টম ফিল্ডে স্পেসিফিকেশনটি নাই। সেক্ষেত্রে আপনি চাইবেন যদি স্পেসিফিকেশন ফিল্ডটি ফাঁকা থাকে তাহলে ইউজারকে দেখাতে যে “Camera specification not available”। এজন্য আপনাকে conditional statement ব্যবহার করতে হবে। আপনি নিচের মত সেটি করতে পারেন -
[php]
ID, ‘camera_specs’, true);
if ($camera_specs) {
?>
Camera specification not available.
[/php]

পোস্ট টাইটেলকে কাস্টম ফিল্ড দিয়ে যা-ইচ্ছা-তাই বানান

ওয়ার্ডপ্রেসে আমরা যখন নতুন পোস্ট লিখি তখন পোস্ট টাইটেল ফিল্ডটি খুব ই boring। এখানে আমরা না পারি কোন HTML কোড লিখতে, না পারি নিজের ইচ্ছামত লিঙ্ক বসাতে অথবা টাইটেলটিকে নিজের মত স্টাইল দিতে। কিন্তু কাস্টম ফিল্ড দিয়ে আপনি সেটি করতে পারবেন। Conditional Statement এবং কাস্টম ফিল্ড ব্যবহার করে আমরা খুব সহজেই পোস্ট টাইটেলে HTML কোড বসাতে পারি। (যদিও RSS ফিডের ক্ষেত্রে HTML কোড গুলো কাজ করবেনা কিন্তু ব্লগটি যখন ইউজার দেখবে তখন তাদেরকে আপনি HTML ফরম্যাট করা পোস্ট টাইটেল দেখাতে পারেন।) এজন্য আমরা কাস্টম ফিল্ড পোস্ট “post_title” ব্যবহার করব।



কাস্টম ফিল্ড তো যোগ করলেন কিন্তু আপনি এখন কিভাবে আপনার ব্লগের ফ্রন্ট এন্ডে এরকম HTML ফরম্যাট করা পোস্ট দেখাবেন? এজন্য আপনার থিমের যেখানে যেখানে পোস্ট টাইটেল আছে সেখানে নিচের কোড দিয়ে রিপ্লেস করে দিন -
[php]
ID, ‘post_title’, true);
if ($post_title) {
?>
[/php]

ব্লগে কোন একটি নির্দিষ্ট কাস্টম ফিল্ড-ওয়ালা পোস্টগুলো দেখান

ওয়ার্ডপ্রেস বিভন্ন পোস্টের তালিকা দেখানোর জন্য loop ব্যবহার করে। একটি ওয়ার্ডপ্রেস ফাংশন – ‘query_posts()’ আপনাকে সাহায্য করবে আপনি loop এর ভিতর কোন কোন পোস্টগুলোকে আনবেন সেটি ঠিক করতে। এজন্য আমরা আমাদের ক্যামেরার উদাহরণে ফিরে যাই। মনে করুন আমরা চাই শুধু সেইসকল পোস্টকে দেখাতে যাদের ‘camera_specs’ কাস্টম ফিল্ডটি সেট করা আছে। তাহলে নিচের কোডটি ব্যবহার করব -
[php]
query_posts(’meta_key=Camera_Specs’);
[/php]
যদি আমরা শুধুমাত্র সেইসকল ক্যামেরা দেখাতে চাই যাদের দাম ‘20000′ – তাহলে নিচের কোডটি ব্যবহার করব -
[php]
query_posts(’meta_key=price&meta_value=2000′);
[/php]

শিখেনিন Windows-7 Setup

আপনারা যারা Windows 7 setup করার জন্য অন্য ব্যক্তির দারস্থ হতে হয় তাদেরকে বলছি- শিখে নিন, আর কত হাঁটবেন অন্যের দুয়ারে? আমি এইখানে অনেক সহ...