Hướng dẫn tạo Custom Post Type trong WordPress
Khi phát triển website WordPress, đôi khi bạn cần quản lý các loại nội dung đặc thù không phù hợp với hai loại mặc định là Post (Bài viết) và Page (Trang). Lúc này, Custom Post Type (CPT) sẽ là giải pháp tuyệt vời, giúp bạn tổ chức và quản lý nội dung một cách chuyên nghiệp hơn.
Thêm mã vào tệp functions.php
Đầu tiên, truy cập Giao diện > Sửa tệp tin giao diện và mở tệp functions.php. Sau đó, dán đoạn mã sau để đăng ký một Custom Post Type có tên là “Sự kiện”:


function create_event_post_type() {
$labels = array(
'name' => _x('Sự kiện', 'Post type general name', 'textdomain'),
'singular_name' => _x('Sự kiện', 'Post type singular name', 'textdomain'),
'menu_name' => _x('Sự kiện', 'Admin Menu text', 'textdomain'),
'name_admin_bar' => _x('Sự kiện', 'Add New on Toolbar', 'textdomain'),
'add_new' => __('Thêm Sự kiện', 'textdomain'),
'add_new_item' => __('Thêm Sự kiện mới', 'textdomain'),
'new_item' => __('Sự kiện mới', 'textdomain'),
'edit_item' => __('Chỉnh sửa Sự kiện', 'textdomain'),
'view_item' => __('Xem Sự kiện', 'textdomain'),
'all_items' => __('Tất cả Sự kiện', 'textdomain'),
'search_items' => __('Tìm kiếm Sự kiện', 'textdomain'),
'not_found' => __('Không tìm thấy Sự kiện nào.', 'textdomain'),
'not_found_in_trash' => __('Không có Sự kiện nào trong thùng rác.', 'textdomain'),
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array('slug' => 'su-kien'),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => 20,
'menu_icon' => 'dashicons-calendar-alt', // Icon sự kiện
'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'comments'),
'show_in_rest' => true, // Kích hoạt Gutenberg
);
register_post_type('su-kien', $args);
}
add_action('init', 'create_event_post_type');
Thêm danh mục cho Custom Post Type
Để thêm danh mục (taxonomy) cho CPT “Sự kiện”, thêm đoạn mã sau vào ngay dưới đoạn mã trên:
function create_event_taxonomy() {
register_taxonomy(
'event_category',
'su-kien',
array(
'hierarchical' => true,
'labels' => array(
'name' => _x('Danh mục Sự kiện', 'taxonomy general name', 'textdomain'),
'singular_name' => _x('Danh mục Sự kiện', 'taxonomy singular name', 'textdomain'),
'search_items' => __('Tìm kiếm danh mục', 'textdomain'),
'all_items' => __('Tất cả danh mục', 'textdomain'),
'parent_item' => __('Danh mục cha', 'textdomain'),
'parent_item_colon' => __('Danh mục cha:', 'textdomain'),
'edit_item' => __('Chỉnh sửa danh mục', 'textdomain'),
'update_item' => __('Cập nhật danh mục', 'textdomain'),
'add_new_item' => __('Thêm danh mục mới', 'textdomain'),
'new_item_name' => __('Tên danh mục mới', 'textdomain'),
'menu_name' => __('Danh mục Sự kiện', 'textdomain'),
),
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array('slug' => 'danh-muc-su-kien'),
)
);
}
add_action('init', 'create_event_taxonomy');

Cập nhật Permalink
Sau khi thêm mã, truy cập Cài đặt > Đường dẫn tĩnh và nhấn nút Lưu thay đổi để cập nhật liên kết (Permalink)


Cách sử dụng Custom Post Type “Sự kiện”
Tạo danh mục sự kiện: Truy cập Sự kiện > Danh mục sự kiện, sau đó tạo một danh mục phù hợp, ví dụ: Ra mắt sản phẩm.


Tạo sự kiện mới: Truy cập Sự kiện > Thêm mới, nhập tiêu đề, nội dung, thêm hình ảnh, và chọn danh mục tương ứng.


Xem kết quả: Sau khi lưu sự kiện, truy cập website để kiểm tra CPT “Sự kiện” vừa tạo.

Chúc bạn thành công!