WordPress ঠিক দুই ধরনের কন্টেন্ট টাইপ নিয়ে আসে সরাসরি: পোস্ট (ব্লগ এন্ট্রি, ক্যাটাগরি আর তারিখ দিয়ে সংগঠিত) আর পেজ (স্ট্যান্ডঅ্যালোন, হায়ারার্কিক্যাল কন্টেন্ট যেমন একটি About বা Contact পেজ)। বেশিরভাগ আসল সাইটের তৃতীয় এক ধরনের কন্টেন্ট দরকার যা কোনোটার সাথেই মেলে না — একটি পোর্টফোলিওতে প্রজেক্ট, টিম মেম্বার প্রোফাইল, টেস্টিমোনিয়াল, প্রোডাক্ট। এটাই একটি কাস্টম পোস্ট টাইপ-এর কাজ।
একটি কাস্টম পোস্ট টাইপ ঠিক একটি সাধারণ পোস্টের মতোই আচরণ করে — এটি একটি এডিটর স্ক্রিন, একটি URL, একটি অ্যাডমিন লিস্টিং পায় — কিন্তু নিজের নামে, নিজের অ্যাডমিন মেনুতে, আর সাধারণ পোস্টের সাথে বান্ডেল করা সবকিছু না টেনে (যেমন ক্যাটাগরি আর ট্যাগ, যা টিম মেম্বারের একটি তালিকার জন্য কালেভদ্রে অর্থবহ হয়)।
| যার জন্য বানানো | যা দিয়ে সংগঠিত | |
|---|---|---|
| Post | ব্লগ-স্টাইল, তারিখ-ক্রমানুসারী কন্টেন্ট | ক্যাটাগরি আর ট্যাগ |
| Page | স্ট্যান্ডঅ্যালোন, বেশিরভাগ-স্ট্যাটিক কন্টেন্ট | Parent/child পেজ হায়ারার্কি |
| Custom Post Type | একটি সাইটের দরকার এমন আর যেকোনো পুনরাবৃত্ত কন্টেন্ট টাইপ | আপনি যা কাস্টম ট্যাক্সোনমি সংযুক্ত করেন (পরের পাঠ) — বা একেবারেই কিছু না |
একটি পোর্টফোলিও সাইটের "Projects" দরকার — প্রতিটির নিজস্ব title, description, ছবি, আর ক্লায়েন্টের নাম সহ। সাধারণ পোস্টে এটি জোর করে ঢোকানোর মানে হয় হয় ব্লগকে নন-ব্লগ কন্টেন্ট দিয়ে দূষিত করা, বা "এটি একটি প্রজেক্ট" বোঝাতে একটি ক্যাটাগরিকে বিকল্প হিসেবে ব্যবহার করা, যা দ্রুত ভেঙে পড়ে: কোনো নিবেদিত অ্যাডমিন স্ক্রিন থাকে না, প্রজেক্ট-নির্দিষ্ট ফিল্ড পরিষ্কারভাবে যোগ করার কোনো উপায় থাকে না, আর আসল ব্লগ পোস্ট থেকে কোনো পরিষ্কার আলাদাকরণ থাকে না। একটি project কাস্টম পোস্ট টাইপ এই সবকিছু একসাথে সমাধান করে।
একই টেবিল, ভিন্ন post_type
ভেতরে ভেতরে, একটি কাস্টম পোস্ট টাইপ আলাদা কোনো ডেটাবেস টেবিল নয় — এটি সাধারণ পোস্ট আর পেজের মতো ঠিক একই wp_posts টেবিলে সংরক্ষিত, শুধু একটি ভিন্ন post_type মান দিয়ে চিহ্নিত। এই কারণেই এটি বিনামূল্যে এত কিছু উত্তরাধিকার সূত্রে পায়: একটি এডিটর স্ক্রিন, রিভিশন, ফিচার্ড ইমেজ, কাস্টম ফিল্ড — এসব সবকিছু ইতিমধ্যে জানে যেকোনো পোস্ট টাইপের সাথে কাজ করতে, শুধু বিল্ট-ইন দুটোর সাথে নয়।
পরের পাঠ একটি আসল কাস্টম পোস্ট টাইপ রেজিস্টার করে — কোনো PHP লাগবে না, সেটআপ পাঠে ইনস্টল করা CPT UI প্লাগইন ব্যবহার করে।