Thêm Categories vào Custom Post Type WordPress
WordPress cung cấp sẵn các loại bài viết (post types) như bài viết (posts) và trang (pages). Tuy nhiên, để quản lý nội dung hiệu quả hơn, bạn có thể tạo ra các loại bài viết tùy chỉnh (custom post types). Khi tạo custom post type, bạn có thể muốn thêm các danh mục (categories) để phân loại nội dung, tương tự như cách bạn sử dụng categories cho bài viết thông thường. Bài viết này sẽ hướng dẫn bạn cách thực hiện điều đó.
Tại Sao Cần Thêm Categories vào Custom Post Type?
Việc thêm categories vào custom post type mang lại nhiều lợi ích:
- Tổ Chức Nội Dung Tốt Hơn: Phân loại nội dung giúp người dùng dễ dàng tìm kiếm và điều hướng trên website của bạn.
- SEO Tối Ưu: Categories giúp công cụ tìm kiếm hiểu rõ hơn về nội dung của bạn, cải thiện khả năng hiển thị trên kết quả tìm kiếm.
- Giao Diện Người Dùng Thân Thiện: Categories giúp tạo ra giao diện trực quan và dễ sử dụng cho website của bạn.
Cách Thêm Categories vào Custom Post Type
Có nhiều cách để thêm categories vào custom post type, bao gồm sử dụng code trực tiếp, sử dụng plugin, hoặc kết hợp cả hai. Dưới đây là hướng dẫn chi tiết cho từng phương pháp.
Sử Dụng Code (functions.php hoặc Plugin tùy chỉnh)
Phương pháp này đòi hỏi bạn phải chỉnh sửa code trong file functions.php
của theme hoặc tạo một plugin tùy chỉnh. Đây là phương pháp linh hoạt nhất nhưng cũng đòi hỏi kiến thức về PHP.
Bước 1: Đăng Ký Custom Post Type
Trước tiên, bạn cần đảm bảo rằng bạn đã đăng ký custom post type của mình. Nếu chưa, hãy thêm đoạn code sau vào functions.php
(hoặc plugin tùy chỉnh):
function create_custom_post_type() {
$labels = array(
'name' => _x( 'Sản phẩm', 'post type general name' ),
'singular_name' => _x( 'Sản phẩm', 'post type singular name' ),
'menu_name' => __( 'Sản phẩm' ),
'name_admin_bar' => __( 'Sản phẩm' ),
'add_new' => __( 'Thêm mới' ),
'add_new_item' => __( 'Thêm sản phẩm mới' ),
'new_item' => __( 'Sản phẩm mới' ),
'edit_item' => __( 'Sửa sản phẩm' ),
'view_item' => __( 'Xem sản phẩm' ),
'all_items' => __( 'Tất cả sản phẩm' ),
'search_items' => __( 'Tìm kiếm sản phẩm' ),
'parent_item_colon' => __( 'Sản phẩm cha:' ),
'not_found' => __( 'Không tìm thấy sản phẩm nào.' ),
'not_found_in_trash' => __( 'Không có sản phẩm nào trong thùng rác.' )
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'san-pham' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
);
register_post_type( 'san_pham', $args );
}
add_action( 'init', 'create_custom_post_type' );
Lưu ý: Thay đổi 'san_pham'
và các label cho phù hợp với custom post type của bạn.
Bước 2: Thêm Taxonomy (Categories)
Bây giờ, chúng ta sẽ thêm taxonomy (categories) vào custom post type. Thêm đoạn code sau vào functions.php
(hoặc plugin tùy chỉnh):
function create_custom_taxonomy() {
$labels = array(
'name' => _x( 'Loại sản phẩm', 'taxonomy general name' ),
'singular_name' => _x( 'Loại sản phẩm', 'taxonomy singular name' ),
'search_items' => __( 'Tìm loại sản phẩm' ),
'all_items' => __( 'Tất cả loại sản phẩm' ),
'parent_item' => __( 'Loại sản phẩm cha' ),
'parent_item_colon' => __( 'Loại sản phẩm cha:' ),
'edit_item' => __( 'Sửa loại sản phẩm' ),
'update_item' => __( 'Cập nhật loại sản phẩm' ),
'add_new_item' => __( 'Thêm loại sản phẩm mới' ),
'new_item_name' => __( 'Tên loại sản phẩm mới' ),
'menu_name' => __( 'Loại sản phẩm' ),
);
$args = array(
'hierarchical' => true, // Giống categories (true) hoặc tags (false)
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'loai-san-pham' ),
);
register_taxonomy( 'loai_san_pham', array( 'san_pham' ), $args );
}
add_action( 'init', 'create_custom_taxonomy', 0 );
Lưu ý:
- Thay đổi
'loai_san_pham'
thành slug taxonomy của bạn. - Thay đổi
'san_pham'
thành slug của custom post type bạn đã đăng ký ở bước 1. 'hierarchical' => true
có nghĩa là taxonomy này hoạt động giống categories (có thể có categories cha và con). Nếu bạn muốn nó hoạt động giống tags (không có thứ bậc), hãy đặt thànhfalse
.
Bước 3: Truy Cập Dashboard và Thêm Categories
Sau khi thêm code, hãy truy cập trang quản trị WordPress của bạn. Bạn sẽ thấy một menu mới với tên “Loại sản phẩm” (hoặc tên bạn đã đặt). Từ đây, bạn có thể thêm, sửa, và xóa các loại sản phẩm (categories) giống như bạn làm với categories của bài viết thông thường.
Sử Dụng Plugin
Nếu bạn không muốn chỉnh sửa code trực tiếp, bạn có thể sử dụng các plugin để thêm categories vào custom post type. Một số plugin phổ biến bao gồm:
- Custom Post Type UI: Plugin này cho phép bạn tạo custom post types và taxonomies (categories, tags) một cách dễ dàng thông qua giao diện trực quan.
- Pods: Một plugin mạnh mẽ cho phép bạn tạo custom post types, taxonomies, và custom fields một cách linh hoạt.
- Toolset Types: Một plugin trả phí cung cấp các công cụ mạnh mẽ để quản lý custom post types, taxonomies, và relationships.
Ví dụ: Sử dụng Custom Post Type UI
- Cài Đặt và Kích Hoạt Plugin: Tìm kiếm và cài đặt plugin “Custom Post Type UI” từ kho plugin WordPress, sau đó kích hoạt nó.
- Tạo Custom Post Type: Truy cập “CPT UI” -> “Add/Edit Post Types” và tạo custom post type của bạn. Điền các thông tin cần thiết như slug, label, và các tùy chọn khác.
- Tạo Taxonomy: Truy cập “CPT UI” -> “Add/Edit Taxonomies” và tạo taxonomy (categories) của bạn. Điền các thông tin cần thiết như slug, label, và chọn custom post type mà bạn muốn gán taxonomy này. Đặt “Hierarchical” thành “true” nếu bạn muốn taxonomy hoạt động như categories.
- Lưu Thay Đổi: Lưu các thay đổi và truy cập trang quản trị custom post type của bạn. Bạn sẽ thấy metabox categories đã được thêm vào.
Hiển Thị Categories của Custom Post Type trên Frontend
Sau khi thêm categories vào custom post type, bạn cần hiển thị chúng trên frontend (trang web). Có nhiều cách để thực hiện điều này, tùy thuộc vào theme và cách bạn muốn hiển thị categories.
Sử Dụng Code trong Theme
Bạn có thể sử dụng code PHP trong theme của bạn để hiển thị categories. Ví dụ, bạn có thể thêm đoạn code sau vào template của custom post type (ví dụ: single-san_pham.php
):
<?php
$terms = get_the_terms( get_the_ID(), 'loai_san_pham' );
if ( $terms && ! is_wp_error( $terms ) ) :
$term_links = array();
foreach ( $terms as $term ) {
$term_links[] = '<a href="' . esc_url( get_term_link( $term ) ) . '">' . $term->name . '</a>';
}
$categories = join( ", ", $term_links );
?>
<p>Categories: <?php echo $categories; ?></p>
<?php endif; ?>
Lưu ý:
- Thay đổi
'loai_san_pham'
thành taxonomy slug của bạn. - Đảm bảo rằng template bạn chỉnh sửa là template phù hợp cho custom post type của bạn.
Sử Dụng Widget hoặc Plugin
Bạn cũng có thể sử dụng widget hoặc plugin để hiển thị categories của custom post type. Một số plugin cung cấp widget hoặc shortcode để hiển thị taxonomies một cách dễ dàng.
Kết Luận
Việc thêm categories vào custom post type là một cách hiệu quả để tổ chức và quản lý nội dung trên website WordPress của bạn. Bạn có thể sử dụng code trực tiếp hoặc plugin để thực hiện việc này, tùy thuộc vào kỹ năng và sở thích của bạn. Hãy chọn phương pháp phù hợp nhất với nhu cầu của bạn và đảm bảo rằng bạn hiển thị categories trên frontend để người dùng có thể dễ dàng tìm kiếm và điều hướng trên website của bạn.