Skip to content
-
Subscribe to our newsletter & never miss our best posts. Subscribe Now!
mcp.friendsworld.shop
mcp.friendsworld.shop
  • Home
  • Contact Us
  • Home
  • Contact Us
Close

Search

  • https://www.facebook.com/
  • https://twitter.com/
  • https://t.me/
  • https://www.instagram.com/
  • https://youtube.com/
Subscribe
WordPress Guide

কাস্টম পোস্ট টাইপ ও কাস্টম ফিল্ড (CPT & Custom Fields): অ্যাডভান্সড ডাইনামিক ওয়েবসাইট বানানোর গোপন শক্তি

By MD Saddam Hossain
September 9, 2026 6 Min Read
0

ভূমিকা: সাধারণ ব্লগিংয়ের খাঁচা ভেঙে শক্তিশালী ওয়েব অ্যাপ্লিকেশন জগতে প্রবেশ

অধিকাংশ মানুষ যখন প্রথম ওয়ার্ডপ্রেস শেখা শুরু করেন, তারা ভাবেন ওয়ার্ডপ্রেস কেবল কিছু সাধারণ ব্লগ পোস্ট আর যোগাযোগের পাতা বানানোর প্ল্যাটফর্ম। কিন্তু আপনি কি জানেন, বিশ্বের শীর্ষস্থানীয় রিয়েল এস্টেট পোর্টাল, চাকরি খোঁজার পোর্টাল (Job Boards), সিনেমা ও বইয়ের রিভিউ সাইট, হাসপাতালের ডাক্তার বুকিং সিস্টেম, এমনকি আন্তর্জাতিক ই-কমার্স প্ল্যাটফর্মগুলোও ওয়ার্ডপ্রেসের ওপরেই সগৌরবে দাঁড়িয়ে আছে?

একটি সাধারণ ব্লগিং সিএমএস কীভাবে এমন অবিশ্বাস্য বহুমুখী অ্যাপ্লিকেশনে পরিণত হতে পারে? এর পেছনের সবচেয়ে বড় জাদুকরী অস্ত্রটির নাম হলো ‘কাস্টম পোস্ট টাইপ’ (Custom Post Types বা CPT) এবং তার বিশ্বস্ত সঙ্গী ‘কাস্টম ফিল্ডস’ (Custom Fields বা Post Meta)। এই দুটি ক্ষমতার ওপর যার দক্ষতা রয়েছে, তিনি ওয়ার্ডপ্রেস দিয়ে যেকোনো কাল্পনিক প্রজেক্ট বাস্তবে রূপ দিতে পারেন কোনো সীমাবদ্ধতা ছাড়াই। আজকের এই বিশদ গাইডে আমরা CPT এবং কাস্টম ফিল্ডসের পেছনের স্থাপত্য, কোডিং পদ্ধতি এবং অ্যাডভান্সড কাস্টম ফিল্ডস (ACF) প্লাগইনের বাস্তব প্রয়োগ নিয়ে বিস্তারিত আলোচনা করব সহজ ও প্রাঞ্জল বাংলায়।

কাস্টম পোস্ট টাইপ (CPT) আসলে কী? সহজ সংজ্ঞা ও দর্শন

ওয়ার্ডপ্রেসের ডিফল্ট সিস্টেমে কনটেন্ট রাখার জন্য দুটি প্রধান মাধ্যম থাকে—একটি হলো ‘পোস্ট’ (Posts) এবং অন্যটি হলো ‘পেইজ’ (Pages)। কিন্তু ধরুন আপনি একটি সিনেমা রিভিউয়ের ওয়েবসাইট বানাচ্ছেন। এখন আপনি যদি প্রতিটি সিনেমার তথ্য সাধারণ ব্লগে পোস্ট করেন, তবে সিনেমার নাম, পরিচালকের নাম, মুক্তির সাল, আইএমডিবি রেটিং এবং ট্রেলারের ভিডিও—সবকিছু সাধারণ লেখার সাথে জগাখিচুড়ি হয়ে যাবে। এছাড়া সাইটের টেকনিক্যাল টিম মেম্বার বা লেখকরাও বিভ্রান্ত হয়ে পড়বেন।

এই সমস্যার নিখুঁত সমাধান হলো সম্পূর্ণ নতুন ধরনের একটি কন্টেন্ট স্ট্রাকচার তৈরি করা। ওয়ার্ডপ্রেসের ভাষায় এই কাস্টমাইজড ফরম্যাটগুলোকেই বলা হয় ‘কাস্টম পোস্ট টাইপ’ (CPT)।

যখন আপনি একটি ‘Movies’ বা ‘Properties’ নামের CPT রেজিস্টার করেন, তখন ওয়ার্ডপ্রেস অ্যাডমিন প্যানেলের বাম পাশের মেন্যুতে Posts এবং Pages এর মতোই সম্পূর্ণ স্বাধীন একটি নতুন মেন্যু যুক্ত হয়! সেখানে আলাদা ‘Add New Movie’, আলাদা ক্যাটাগরি এবং আলাদা তালিকা থাকে।

বাস্তব জীবনে CPT ব্যবহারের চমৎকার কিছু উদাহরণ:

  • ই-কমার্স স্টোর: যেমন উকমার্সের ‘Products’ হলো একটি কাস্টম পোস্ট টাইপ।
  • পোর্টফোলিও ওয়েবসাইট: ফ্রিল্যান্সার বা এজেন্সির জন্য ‘Projects’ বা ‘Case Studies’।
  • রিয়েল এস্টেট প্ল্যাটফর্ম: বাড়ি বা ফ্ল্যাটের তালিকার জন্য ‘Properties’।
  • রেস্তোরাঁর সাইট: খাবারের পদের জন্য ‘Menu Items’ বা ‘Recipes’।
  • হাসপাতাল বা ক্লিনিক: ডাক্তারদের প্রোফাইলের জন্য ‘Doctors’।
  • লার্নিং ম্যানেজমেন্ট: অনলাইন কোর্সের জন্য ‘Courses’ এবং ‘Lessons’।

কাস্টম ফিল্ডস (Custom Fields / Post Meta) কী? তথ্যের নিখুঁত শৃঙ্খলা

CPT আপনাকে একটি নতুন কন্টেন্ট সেকশন উপহার দেয়, কিন্তু সেই সেকশনের ভেতরে সুনির্দিষ্ট ডেটা ইনপুট নেওয়ার জন্য প্রয়োজন হয় ‘কাস্টম ফিল্ডস’ (Custom Fields)।

একটি সাধারণ ওয়ার্ডপ্রেস পোস্টে কেবল একটি শিরোনাম (Title) এবং একটি বড় লেখার বক্স (Body Content) থাকে। কিন্তু একটি বাড়ির বিজ্ঞাপনে আপনার কী কী তথ্য প্রয়োজন?

  • বাড়ির দাম (Price – Number Field)
  • বেডরুমের সংখ্যা (Bedrooms – Select Dropdown)
  • বাথরুমের সংখ্যা (Bathrooms – Number Field)
  • ভৌগোলিক ঠিকানা (Location / Google Map)
  • ফ্ল্যাটের সাইজ (Square Feet – Text Field)
  • ছবি গ্যালারি (Gallery / Image Field)

যদি আপনি এই তথ্যগুলো সাধারণ প্যারাগ্রাফের মধ্যে লিখে দেন, তবে কোনো ভিজিটর ফিল্টার করতে পারবেন না যে “আমাকে ৫০ লাখ টাকার নিচের এবং ৩ বেডরুমের ফ্ল্যাটগুলো দেখাও”। কিন্তু আপনি যদি প্রতিটি তথ্যের জন্য আলাদা আলাদা কাস্টম ফিল্ড ব্যবহার করেন, তবে ডেটাবেজে প্রতিটি তথ্য আলাদা কি-ভ্যালু (Key-Value) হিসেবে জমা হয় এবং নিমেষেই জটিল সার্চ ও ফিল্টারিং করা সম্ভব হয়!

অ্যাডভান্সড কাস্টম ফিল্ডস (ACF): ডেভেলপারদের পরম বন্ধু

ওয়ার্ডপ্রেসে ডিফল্টভাবে একটি সাধারণ কাস্টম ফিল্ড মেটাবক্স থাকে, তবে তা ব্যবহারের দিক থেকে বেশ নীরস ও জটিল। বিশ্বব্যাপী ওয়ার্ডপ্রেস ডেভেলপারদের জীবনকে সহজ করে দিয়েছে যে প্লাগইনটি, তার নাম হলো Advanced Custom Fields (ACF)।

ACF প্লাগইনের সাহায্যে আপনি কোনো কোডিং না করেই মাউসের ক্লিকে চমৎকার সব ইনপুট ফিল্ড তৈরি করতে পারেন:

  1. ফিল্ড গ্রুপ তৈরি: ACF মেন্যু থেকে ‘Add Field Group’ এ যান (যেমন: ‘Property Details’)।
  2. ফিল্ড যোগ করা: ফিল্ডের নাম দিন (যেমন: ‘Price’), ফিল্ড টাইপ সিলেক্ট করুন (Number, Date, True/False, Image ইত্যাদি)।
  3. লোকেশন রুলস (Location Rules): নির্ধারণ করে দিন এই ফিল্ডগুলো ঠিক কোথায় প্রদর্শিত হবে (যেমন: Show this field group if Post Type is equal to Property)।

এখন যখনই কেউ ‘Add New Property’ তে যাবেন, পোস্ট এডিটরের ঠিক নিচে একটি সুন্দর ফর্ম চলে আসবে যেখানে নির্দিষ্ট ঘরে কেবল দাম, বেডরুম এবং লোকেশন ইনপুট দিলেই কাজ শেষ!

ধাপে ধাপে পিএইচপিতে কাস্টম পোস্ট টাইপ রেজিস্টার করার নিয়ম

ওয়ার্ডপ্রেসের কোর ফাংশন register_post_type() এর মাধ্যমে খুব সহজেই থিমের functions.php বা একটি কাস্টম প্লাগইনে CPT তৈরি করা যায়। চলুন একটি ‘Book’ কাস্টম পোস্ট টাইপের বাস্তব কোড দেখি:

<?php
function create_book_cpt() {
    $labels = array(
        'name'                  => 'Books',
        'singular_name'         => 'Book',
        'menu_name'             => 'Books',
        'name_admin_bar'        => 'Book',
        'add_new'               => 'Add New Book',
        'add_new_item'          => 'Add New Book',
        'new_item'              => 'New Book',
        'edit_item'             => 'Edit Book',
        'view_item'             => 'View Book',
        'all_items'             => 'All Books',
        'search_items'          => 'Search Books',
        'not_found'             => 'No books found.',
    );

    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array('slug' => 'books'),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 5,
        'menu_icon'          => 'dashicons-book-alt', // ড্যাশবোর্ড আইকন
        'supports'           => array('title', 'editor', 'thumbnail', 'excerpt'),
        'show_in_rest'       => true // গুটেনবার্গ ব্লক এডিটর ও এপিআই সাপোর্ট
    );

    register_post_type('book', $args);
}
add_action('init', 'create_book_cpt');
?>

বিশেষ লক্ষ্যণীয়: 'show_in_rest' => true দেওয়া অত্যন্ত জরুরি। এটি না দিলে আপনার কাস্টম পোস্ট টাইপটি পুরোনো ক্লাসিক এডিটরে ওপেন হবে এবং আধুনিক গুটেনবার্গ এডিটর কাজ করবে না।

থিম টেমপ্লেটে CPT ও কাস্টম ফিল্ড প্রদর্শনের নিয়ম

সিপিটি তৈরির পর সেটির কনটেন্টকে ওয়েবসাইটে প্রদর্শনের জন্য ওয়ার্ডপ্রেস টেমপ্লেট হায়ারার্কিতে দুটি বিশেষ ফাইল তৈরি করতে হয়:

১. archive-book.php (আর্কাইভ পেজ)

যখন ভিজিটর yoursite.com/books/ ইউআরএলে প্রবেশ করবেন, তখন সমস্ত বইয়ের তালিকা প্রদর্শনের জন্য থিম এই ফাইলটি রান করবে।

২. single-book.php (একক বইয়ের বিস্তারিত পেজ)

যখন কোনো পাঠক একটি নির্দিষ্ট বইয়ের লিঙ্কে ক্লিক করবেন, তখন সেই একক বইয়ের পাতা দেখানোর জন্য এই ফাইলটি ব্যবহৃত হবে।

টেমপ্লেটে ACF ফিল্ড প্রদর্শনের পিএইচপি কোড:

<?php
get_header();

while ( have_posts() ) : the_post(); ?>
    <article class="book-single">
        <h1><?php the_title(); ?></h1>
        <?php the_post_thumbnail('large'); ?>
        
        <div class="book-meta">
            <p><strong>লেখকের নাম:</strong> <?php the_field('author_name'); ?></p>
            <p><strong>মূল্য:</strong> ৳<?php the_field('price'); ?></p>
            <p><strong>আইএসবিএন (ISBN):</strong> <?php the_field('isbn_number'); ?></p>
        </div>

        <div class="book-description">
            <?php the_content(); ?>
        </div>
    </article>
<?php endwhile;

get_footer();
?>

the_field('field_name') ফাংশনটি ACF প্লাগইনের নিজস্ব ফাংশন, যা সরাসরি ডেটাবেজ থেকে ফিল্ডের ভ্যালু এনে স্ক্রিনে প্রিন্ট করে দেয়।

পারমালিঙ্ক ৪০৪ এরর ও ফ্লাশ রিরাইট রুলস (The 404 Pitfall)

নতুন CPT তৈরি করার পর ডেভেলপাররা যে সমস্যায় সবচেয়ে বেশি পড়েন তা হলো: পোস্ট তৈরি করার পর প্রিভিউ দেখতে গেলে বা লিঙ্কে ক্লিক করলে ‘404 Page Not Found’ দেখায়!

এর কারণ হলো, ওয়ার্ডপ্রেস তার ইন্টারনাল পারমালিঙ্ক ক্যাশে নতুন CPT-এর ইউআরএল রুলস স্বয়ংক্রিয়ভাবে আপডেট করতে পারে না।

সহজ সমাধান: ওয়ার্ডপ্রেস ড্যাশবোর্ডে Settings > Permalinks এ যান এবং কোনো কিছু পরিবর্তন না করেই নিচে থাকা ‘Save Changes’ বাটনে ক্লিক করুন। এটি সাথে সাথে ওয়ার্ডপ্রেসের রিরাইট রুলস ফ্লাশ (Flush Rewrite Rules) করে দেয় এবং সমস্ত ৪০৪ এরর নিমিষেই দূর হয়ে যায়!

WP_Query দিয়ে কাস্টম ফিল্ড কোয়েরি (meta_query) করার টেকনিক

কাস্টম ফিল্ডের আসল শক্তি প্রকাশ পায় যখন আপনি জটিল ফিল্টারিং কোয়েরি রান করেন। উদাহরণস্বরূপ, আপনি এমন সমস্ত বই প্রদর্শন করতে চান যার মূল্য ৫০০ টাকার কম এবং লেখক ‘কাজী নজরুল ইসলাম’।

এর জন্য WP_Query তে meta_query আর্গুমেন্ট ব্যবহার করা হয়:

<?php
$args = array(
    'post_type'  => 'book',
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key'     => 'price',
            'value'   => 500,
            'type'    => 'NUMERIC',
            'compare' => '<='
        ),
        array(
            'key'     => 'author_name',
            'value'   => 'কাজী নজরুল ইসলাম',
            'compare' => '='
        )
    )
);
$book_query = new WP_Query($args);
?>

এই ধরণের কোয়েরির মাধ্যমে আপনি রিয়েল এস্টেট সাইটে দাম বা বেডরুম অনুযায়ী সার্চ ফিল্টার, বা ই-কমার্স সাইটে ডিসকাউন্ট ফিল্টার অনায়াসে তৈরি করতে পারেন।

ডাটাবেজে wp_postmeta এর পারফরম্যান্স ও অপটিমাইজেশন

ওয়ার্ডপ্রেসের প্রতিটি কাস্টম ফিল্ডের ভ্যালু ডাটাবেজের wp_postmeta টেবিলে সংরক্ষিত হয়। একটি বড় সাইটে যখন লাখ লাখ পোস্টমেটা রেকর্ড থাকে, তখন অতিরিক্ত meta_query ডাটাবেজকে কিছুটা ধীরগতির করতে পারে।

এই পারফরম্যান্স সমস্যা এড়ানোর উপায়সমূহ:

  • ক্যাশিং ব্যবহার করা: জটিল কোয়েরির ফলাফল set_transient() এর মাধ্যমে মেমোরিতে ক্যাশ করে রাখুন, যাতে প্রতিবার ডাটাবেজে সরাসরি হিট না পড়ে।
  • অপ্রয়োজনীয় মেটা ফিল্ড না বাড়ানো: যে তথ্যগুলো ক্যাটাগরি বা ট্যাগের মাধ্যমে প্রকাশ করা সম্ভব, সেগুলোর জন্য কাস্টম ফিল্ড ব্যবহার না করে কাস্টম ট্যাক্সোনমি ব্যবহার করা ডাটাবেজের জন্য অনেক বেশি দ্রুতগতির।
  • অটলোড অপটিমাইজেশন: অপ্রয়োজনীয় পোস্টমেটা ডেটা গ্লোবাল কোয়েরিতে লোড না করে শুধুমাত্র স্পেসিফিক পেজেই get_post_meta() দিয়ে কল করা বুদ্ধিমানের কাজ।

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলি (FAQ)

১. কাস্টম পোস্ট টাইপ কি ওয়েবসাইট স্লো করে?

না, একদমই নয়! CPT মূলত ওয়ার্ডপ্রেসের মূল wp_posts টেবিলই ব্যবহার করে, কেবল post_type কলামে ‘post’ এর বদলে আপনার দেওয়া নাম (যেমন ‘book’) বসে। এটি অত্যন্ত অপটিমাইজড ও ফাস্ট।

২. কোডিং ছাড়া কি CPT তৈরি করা সম্ভব?

হ্যাঁ, অবশ্যই! ‘Custom Post Type UI’ (CPT UI) অথবা ‘Pods’ প্লাগইন ব্যবহার করে কোনো কোড না লিখেই সম্পূর্ণ ভিজ্যুয়াল ইন্টারফেসে কয়েক ক্লিকে CPT এবং কাস্টম ট্যাক্সোনমি তৈরি করা যায়।

৩. সাধারণ পোস্টের সাথে CPT এর পার্থক্য কী?

সাধারণ পোস্ট ব্লগে ক্রোনোলজিক্যাল আকারে থাকে এবং সবার সাথে মিশে থাকে। CPT সম্পূর্ণ আলাদা সত্ত্বা হিসেবে নিজস্ব ড্যাশবোর্ড মেন্যু, আলাদা পারমালিঙ্ক স্ট্রাকচার এবং বিশেষ ফিল্ড ধারণ করে।

৪. CPT-তে কি ক্যাটাগরি ও ট্যাগ ব্যবহার করা যায়?

হ্যাঁ, আপনি চাইলে ডিফল্ট ক্যাটাগরি ও ট্যাগ লিঙ্ক করতে পারেন অথবা register_taxonomy() দিয়ে সেই CPT-এর জন্য সম্পূর্ণ নতুন কাস্টম ক্যাটাগরি তৈরি করতে পারেন।

৫. রেস্ট এপিআই দিয়ে কি CPT-এর ডেটা পাওয়া যায়?

হ্যাঁ! CPT তৈরির আর্গুমেন্টে 'show_in_rest' => true সেট করলেই স্বয়ংক্রিয়ভাবে /wp-json/wp/v2/books এন্ডপয়েন্ট সক্রিয় হয়ে যায়, যা দিয়ে মোবাইল অ্যাপে ডেটা পাঠানো যায়।

উপসংহার

কাস্টম পোস্ট টাইপ এবং কাস্টম ফিল্ড হলো এমন এক যাদুর কাঠি যা সাধারণ কন্টেন্ট ম্যানেজমেন্টের সীমানা ভেঙে ওয়ার্ডপ্রেসকে নিয়ে গেছে পূর্ণাঙ্গ এন্টারপ্রাইজ অ্যাপ্লিকেশন প্ল্যাটফর্মের কাতারে। এই প্রযুক্তির মেলবন্ধন আপনাকে দেয় অসীম সম্ভাবনা ও স্থাপত্যগত স্বাধীনতা। আপনার পরবর্তী ক্লায়েন্ট প্রজেক্ট বা পার্সোনাল আইডিয়ায় CPT এবং ACF-এর শক্তি কাজে লাগান এবং নির্মাণ করুন সম্পূর্ণ ডাইনামিক, আধুনিক ও পেশাদার ওয়েবসাইট!

Author

MD Saddam Hossain

Follow Me
Other Articles
Previous

ওয়ার্ডপ্রেস ইউজার রোল ও পারমিশন (User Roles & Permissions): নিরাপত্তা ও টিম ম্যানেজমেন্টের পূর্ণাঙ্গ গাইড

Next

ওয়ার্ডপ্রেস ডাটাবেজ ও wp-config.php: ব্যাকএন্ড আর্কিটেকচার, অপটিমাইজেশন ও নিরাপত্তার পূর্ণাঙ্গ গাইড

No Comment! Be the first one.

Leave a Reply Cancel reply

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

Recent Posts

  • ওয়ার্ডপ্রেস ডাটাবেজ ও wp-config.php: ব্যাকএন্ড আর্কিটেকচার, অপটিমাইজেশন ও নিরাপত্তার পূর্ণাঙ্গ গাইড
  • কাস্টম পোস্ট টাইপ ও কাস্টম ফিল্ড (CPT & Custom Fields): অ্যাডভান্সড ডাইনামিক ওয়েবসাইট বানানোর গোপন শক্তি
  • ওয়ার্ডপ্রেস ইউজার রোল ও পারমিশন (User Roles & Permissions): নিরাপত্তা ও টিম ম্যানেজমেন্টের পূর্ণাঙ্গ গাইড
  • ক্যাটাগরি ও ট্যাগ (Categories & Tags): ওয়ার্ডপ্রেস কন্টেন্ট অর্গানাইজেশন ও এসইও সাইলো স্ট্রাকচারের পূর্ণাঙ্গ গাইড
  • ওয়ার্ডপ্রেস রেস্ট এপিআই (WordPress REST API) কী? হেডলেস আর্কিটেকচার ও আধুনিক ওয়েব ডেভেলপমেন্টের পূর্ণাঙ্গ গাইড

Recent Comments

  1. MD Saddam Hossain on ক্যাটাগরি ও ট্যাগ (Categories & Tags): ওয়ার্ডপ্রেস কন্টেন্ট অর্গানাইজেশন ও এসইও সাইলো স্ট্রাকচারের পূর্ণাঙ্গ গাইড

Archives

  • September 2026

Categories

  • WordPress Guide
Copyright 2026 — mcp.friendsworld.shop. All rights reserved. Blogsy WordPress Theme