ক্যাটাগরি আর ট্যাগ নিজেরাই আসলে শুধু ট্যাক্সোনমি — কন্টেন্ট গ্রুপ করার জন্য একটি সাধারণ WordPress সিস্টেম — বিল্ট-ইন আর পোস্টের সাথে আগে থেকে সংযুক্ত। একটি কাস্টম পোস্ট টাইপ ডিফল্টভাবে কোনোটাই পায় না, কিন্তু CPT UI পোস্ট টাইপ নিজে রেজিস্টার করার মতোই সহজে এতে একদম নতুন একটি ট্যাক্সোনমি সংযুক্ত করতে পারে।
প্রতিটি ট্যাক্সোনমি তৈরির সময় বেছে নেওয়া দুটো আকারের একটি:
| টাইপ | যেমন আচরণ করে | যার জন্য ভালো |
|---|---|---|
| Hierarchical | ক্যাটাগরি — parent/child টার্ম থাকতে পারে, এডিটরে চেকবক্স হিসেবে দেখানো হয় | নেস্টেড গ্রুপিং — "Services"-এর নিচে "Web Design" |
| Non-hierarchical | ট্যাগ — সমতল, কোনো parent/child নেই, একটি মুক্ত-আকারের কমা-দিয়ে-আলাদা করা ফিল্ড হিসেবে দেখানো হয় | ঢিলা লেবেল — স্কিল, কীওয়ার্ড, স্বাভাবিক নেস্টিং নেই এমন যেকোনো কিছু |
CPT UI → Add/Edit Taxonomies থেকে, প্রক্রিয়াটি পোস্ট টাইপ স্ক্রিনের মতোই: একটি ট্যাক্সোনমি slug (যেমন project_type), প্লুরাল আর সিঙ্গুলার লেবেল, উপরের hierarchical/non-hierarchical পছন্দ, আর — একমাত্র সেটিং যা আসলে এটিকে কিছুর সাথে সংযুক্ত করে — একটি Attached to Post Types তালিকা, যেখানে আপনি project (বা যে কাস্টম পোস্ট টাইপ এটি সংগঠিত করবে) চেক করেন।
সংযুক্তি এক-থেকে-এক নয়
একটি একক ট্যাক্সোনমি একসাথে একাধিক পোস্ট টাইপের সাথে সংযুক্ত হতে পারে, আর একটি একক পোস্ট টাইপে একাধিক ট্যাক্সোনমি সংযুক্ত থাকতে পারে — একটি project পোস্ট টাইপে যুক্তিসঙ্গতভাবে একই সাথে একটি hierarchical project_type ট্যাক্সোনমি আর একটি non-hierarchical skill ট্যাক্সোনমি দুটোই থাকতে পারে।
একবার সংযুক্ত হয়ে গেলে, একটি কাস্টম ট্যাক্সোনমি ক্যাটাগরি আর ট্যাগ ইতিমধ্যে ব্যবহার করা একই ফাংশনের সাথে কাজ করে — একটি পোস্টের টার্ম তালিকা করতে get_the_terms(), একটি নির্দিষ্টটি আছে কিনা চেক করতে has_term():
<?php
$terms = get_the_terms( get_the_ID(), 'project_type' );
if ( $terms && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo esc_html( $term->name ) . ' ';
}
}
?>একটি পোস্ট টাইপ আর একটি ট্যাক্সোনমি দুটোই রেজিস্টার হয়ে যাওয়ার পর, পরের পাঠ সেই টেমপ্লেট ফাইলগুলো বানায় যা আসলে এগুলো দেখায় — আগের ঠিক একই template hierarchy প্যাটার্ন অনুসরণ করে, একটি কাস্টম পোস্ট টাইপের নিজস্ব নামকরণ দিয়ে বর্ধিত।