কাস্টম পোস্ট টাইপ (WordPress Custom Post Type) : আপনারা যারা ওয়ার্ডপ্রেস নিয়ে কাজ করেন, তাদের মাঝে মধ্যেই নতুন পোস্ট টাইপ তৈরির প্রয়োজন হতেই পারে। সেক্ষেত্রে আমরা অনেকেই যা করি তা হলো কোন একটা প্লাগ-ইন ব্যাবহার করে নতুন পোস্ট বানিয়ে ফেলি। কিন্তু চাইলেই ব্যপারটা খুব সহজেই আমরা তৈরি করতে পারি কোন প্রকার প্লাগ-ইন এর সাহায্য ছাড়াই।
তাহলে চলুন দেখি কিভাবে আমরা function.php থেকে custom post type তৈরি করতে পারি । তাহলে আমরা বুজতেই পারছি আমরা আমাদের সবটুকু কাজটা করবো function.php তে । আর ২ টা wordpress function ব্যাবহার করে আমরা আমাদের নিজেদের একটি custom post এবং custom taxonomy তৈরি করে ফেলতে পারবো
প্রথমটা হল register_post_type( string $post_type, array|string $args = array() ) । wordpress এর এই ফাংশনটা দিয়ে custom post type কে আমরা রেজিস্টার করতে পারবো । কিন্তু আমাদের ফাংশনটির প্যারামিটার গুলোর সাথে আগে পরিচয় হয়ে নিতে হবে । প্যারামিটার অংশে ডেটা টাইপ সহ চলক থাকে, যা ফাংশনটি কি ধরণের কয়টি ডেটা ইনপুট নিবে তা নির্ধারণ করে । যেমন এখানে $post_type প্যারামিটার দিয়ে আমরা পোস্টটির টাইপ কী(key) নির্ধারণ করতে পারি যেমন আমার পোস্টটি যদি অনেক গুলো বইয়ের ডেটা হই তাহলে আমি দিতে পারি “books” অথবা যেটা মন চাই ( projects , portfolio ) , এবার আসি $args প্যারামিটার – যেটা হল একটি অ্যারে , এই প্যারামিটার দিয়ে আমরা পোস্টটির আরগুমেন্টস গুলো নির্ধারণ করে দিতে পারবো । আমি নিচে দিয়ে দিয়েছি কিভাবে ফাংশনটি লিখবো , আর আরগুমেন্তস গুলো নিয়ে বিস্তারিত আপনারা এই লিংকে পেয়ে যাবেন
কাস্টম পোস্ট টাইপ – Custom Post Type
function my_custom_post_type()
{
register_post_type(
'mypost',
$args = array(
'labels' => array(
'name' => __('My Post'),
'singular_name' => __('my_post'),
'add_new' => 'Add New Post',
'edit_item' => 'Edit Post',
'search_items' => 'Search Post',
),
'supports' => array('title', 'editor', 'custom-fields', 'thumbnail', 'page-attributes', 'post-formats', 'excerpt'),
'menu_icon' => 'dashicons-schedule',
'show_tagcloud' => false,
'rewrite' => array('slug' => 'my_post', 'with_front' => false),
'taxonomy' => true,
'query_var' => true,
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => null,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
)
);
}
add_action('init', 'my_custom_post_type');
add_action( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 )
এরপর আমাদের যেই ফাংশনটা লাগবে সেটা হল add_action() ফাংসন । আমরা যদি একটু ভাল করে দেখি register_post_type ব্যাবহার করার আগে আমরা পুরো ফাংশনটি my_custom_post_type() একটা custom function এর ভিতরে রাখা , এখন আমাদের my_custom_post_type ফাংশনটি init করতে হবে , আর init করার জন্য আমাদের দরকার add_action() ফাংশন । add_action() নিয়ে বিস্তারিত এই লিঙ্কে ।
আপাততো আমাদের কাজ শেষ । এখন function.php ফাইল সেভ করে এডমিন ড্যাশবোর্ড রিফ্রেশ দিন , লেফট সাইডবারে খেয়াল করে দেখুন My Post নামে নতুন একটি পোস্ট টাইপ অপশন চলে আসছে
WordPress Directory Structure
“Solving Rest API CORS Issues in WordPress as a Headless CMS”