Custom Post Type (CPT) là một trong những tính năng mạnh mẽ nhất của WordPress, cho phép bạn tạo ra các loại nội dung tùy chỉnh phù hợp với từng dự án.
Tại Sao Cần Custom Post Type?
Mặc định WordPress chỉ có Posts và Pages. Nhưng nếu bạn xây dựng website bất động sản, bạn cần “Dự án”. Website portfolio cần “Tác phẩm”. CPT giải quyết vấn đề này hoàn hảo.
Đăng Ký CPT Cơ Bản
function register_portfolio_cpt() {
register_post_type( 'portfolio', [
'labels' => [
'name' => 'Danh mục Portfolio',
'singular_name' => 'Portfolio',
'add_new_item' => 'Thêm Portfolio Mới',
],
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-portfolio',
'supports' => [ 'title', 'editor', 'thumbnail', 'excerpt' ],
'rewrite' => [ 'slug' => 'portfolio' ],
'show_in_rest' => true, // Bật Gutenberg support
] );
}
add_action( 'init', 'register_portfolio_cpt' );
Thêm Custom Taxonomy
function register_portfolio_taxonomy() {
register_taxonomy( 'portfolio_cat', 'portfolio', [
'label' => 'Loại Portfolio',
'hierarchical' => true, // true = như Category, false = như Tag
'rewrite' => [ 'slug' => 'portfolio-category' ],
'show_in_rest' => true,
] );
}
add_action( 'init', 'register_portfolio_taxonomy' );
Lưu Ý Quan Trọng
Sau khi đăng ký CPT, hãy vào Settings > Permalinks và nhấn Save để WordPress cập nhật lại rewrite rules. Nếu không, trang archive của CPT sẽ báo 404.