Custom Post Type (CPT) là một trong những tính năng mạnh mẽ của WordPress, cho phép bạn tạo ra các loại nội dung riêng biệt ngoài Post và Page mặc định. Ví dụ: “Sản phẩm”, “Khóa học”, “Dự án” hay “Review phim”. Tìm hiểu cách tạo Custom Post Type trong WordPress mà không cần plugin. Hướng dẫn chi tiết với code mẫu, giúp bạn mở rộng website linh hoạt và tối ưu SEO.
Trong bài viết này, websitedanang sẽ hướng dẫn bạn cách tạo Custom Post Type mà không cần dùng đến plugin, đảm bảo website của bạn gọn nhẹ, tối ưu và dễ quản lý.
Custom Post Type là gì?
Custom Post Type (CPT) là loại nội dung tùy chỉnh trong WordPress. Ngoài các post type mặc định như:
- Post: Bài viết blog
- Page: Trang tĩnh
- Attachment: File media
- Revision: Phiên bản lưu nháp
Bạn có thể tự định nghĩa thêm post type mới, chẳng hạn “Portfolio”, “Product” hoặc “Event”.
Việc sử dụng CPT mang lại nhiều lợi ích:
- Tổ chức nội dung chuyên nghiệp hơn: Thay vì dồn tất cả vào “Post”, bạn có thể tách riêng từng loại dữ liệu để dễ dàng quản lý.
- Tối ưu trải nghiệm người dùng: Người truy cập có thể xem nội dung theo từng danh mục rõ ràng như “Sản phẩm”, “Dịch vụ”, “Tin tức”.
- Hỗ trợ SEO tốt hơn: Mỗi CPT có đường dẫn (slug), template, và taxonomy riêng, giúp Google hiểu rõ cấu trúc website của bạn.
- Tăng tính linh hoạt khi phát triển website: Dù bạn làm blog cá nhân, website bán hàng hay portfolio, CPT đều giúp tạo ra cấu trúc dữ liệu phù hợp với nhu cầu.
Hiểu đơn giản, Custom Post Type chính là chìa khóa để biến WordPress từ một nền tảng blog thành hệ thống quản lý nội dung (CMS) mạnh mẽ.
Tại sao nên tạo Custom Post Type thủ công thay vì plugin?
Việc tạo CPT bằng plugin (như Custom Post Type UI hay Pods) tuy nhanh chóng và tiện lợi cho người không rành code, nhưng cũng tồn tại nhiều hạn chế:
- Tăng phụ thuộc plugin → Càng nhiều plugin, website càng nặng, tốc độ tải trang giảm, dễ phát sinh xung đột khi nâng cấp WordPress hoặc theme.
- Khó di chuyển dữ liệu → Nếu bạn tắt hoặc gỡ plugin, Custom Post Type và dữ liệu liên quan có thể biến mất hoặc hiển thị sai.
- Giới hạn tùy chỉnh → Plugin thường chỉ hỗ trợ các tính năng cơ bản. Khi muốn can thiệp sâu (ví dụ: rewrite URL, thêm taxonomy riêng, hay tích hợp API), bạn sẽ bị giới hạn.
- Ảnh hưởng đến SEO → Một số plugin không tối ưu tốt cho SEO, khiến slug, schema hoặc breadcrumb không được tùy chỉnh chính xác.
Ngược lại, khi bạn tạo CPT thủ công bằng code:
- Website gọn nhẹ, tối ưu hơn → Không cần cài thêm plugin thừa thãi.
- Kiểm soát toàn bộ code → Bạn dễ dàng chỉnh sửa, bảo trì và mở rộng mà không phụ thuộc bên thứ ba.
- Tùy biến nâng cao → Có thể kết hợp Custom Post Type với taxonomy riêng, template riêng, meta box tùy chỉnh, REST API… để biến website thành hệ thống chuyên nghiệp.
- Ổn định và bền vững → Code viết trực tiếp trong theme hoặc plugin tự tạo sẽ không biến mất khi bạn gỡ bỏ plugin khác.
Nói cách khác, tạo CPT thủ công bằng code chính là cách tiếp cận chuẩn dành cho webmaster và developer muốn website chạy nhanh, an toàn, và dễ mở rộng lâu dài.
Cách tạo Custom Post Type không dùng plugin
Bước 1 – Mở file functions.php
Truy cập vào thư mục theme bạn đang dùng:
wp-content/themes/ten-theme-cua-ban/functions.php
Mở file functions.php
bằng trình chỉnh sửa code (có thể dùng Notepad++, VS Code hoặc trình quản lý file của hosting).
Bước 2 – Thêm đoạn code tạo Custom Post Type
Chèn đoạn code sau vào cuối file functions.php
. Ví dụ dưới đây sẽ tạo một Custom Post Type tên “Sản phẩm”:
// Đăng ký Custom Post Type "Sản phẩm"
function webo_register_product_cpt()
$labels = array(
'name' => 'Sản phẩm',
'singular_name' => 'Sản phẩm',
'menu_name' => 'Sản phẩm',
'name_admin_bar' => 'Sản phẩm',
'add_new' => 'Thêm sản phẩm',
'add_new_item' => 'Thêm sản phẩm mới',
'edit_item' => 'Chỉnh sửa sản phẩm',
'new_item' => 'Sản phẩm mới',
'view_item' => 'Xem sản phẩm',
'all_items' => 'Tất cả sản phẩm',
'search_items' => 'Tìm sản phẩm',
'not_found' => 'Không tìm thấy sản phẩm',
'not_found_in_trash' => 'Không có sản phẩm nào trong thùng rác',
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'san-pham'),
'menu_icon' => 'dashicons-cart',
'supports' => array('title', 'editor', 'thumbnail', 'excerpt'),
);
register_post_type('sanpham', $args);
}
add_action('init', 'webo_register_product_cpt');
Bước 3 – Kiểm tra trong WordPress Admin
- Sau khi lưu file
functions.php
, truy cập lại Dashboard WordPress. - Bạn sẽ thấy một menu mới tên “Sản phẩm” xuất hiện ở thanh quản trị.
- Hãy thử thêm mới một “Sản phẩm” để kiểm tra CPT đã hoạt động.
Bước 4 – Tạo Template riêng cho CPT (tuỳ chọn)
Nếu muốn hiển thị đẹp và tách biệt với Post/Page, bạn có thể tạo file template riêng trong theme:
single-sanpham.php
→ Hiển thị chi tiết một sản phẩm.archive-sanpham.php
→ Hiển thị danh sách sản phẩm.
Nhờ đó, website của bạn có bố cục chuyên nghiệp và dễ tối ưu SEO hơn.
Kết luận
Tạo Custom Post Type thủ công trong WordPress là giải pháp tối ưu, gọn nhẹ và bền vững để quản lý nội dung. Thay vì phụ thuộc quá nhiều vào plugin, bạn hoàn toàn có thể:
- Chủ động kiểm soát code và cấu trúc website.
- Tùy chỉnh linh hoạt theo nhu cầu thực tế.
- Giữ cho website luôn nhẹ, nhanh và thân thiện với SEO.
Đây là bước quan trọng nếu bạn muốn biến WordPress từ một nền tảng blog thông thường thành hệ thống quản lý nội dung (CMS) chuyên nghiệp.
Nếu bạn muốn sở hữu website chuẩn SEO, tốc độ cao và thiết kế hiện đại, hãy tham khảo dịch vụ tại Webo.vn – đối tác tin cậy đồng hành cùng doanh nghiệp trên hành trình xây dựng thương hiệu trực tuyến.