Xuất phát từ ngành sinh học, khái niệm Taxonomy được hiểu đơn giản là một hình thức phân loại. Do vậy, người ta cũng dùng thuật ngữ này để phân nhóm nội dung trên trang web. Bài viết này mình sẽ chia sẻ chi tiết hơn về khái niệm cũng như cách sử dụng.

WordPress Taxonomy là gì?
Taxonomy là một khái niệm logic để phân loại và nhóm các bài đăng lại với nhau dựa trên một số tính chất chung nào đó. Ví như mình xây dựng một Blog về Marketing, mình sẽ nhóm các nội dung chia sẻ theo các nhóm như: Facebook, Google, content,.... Taxonomy cho phép bạn thực hiện cách nhóm như vậy để người xem dễ dàng định hướng và tìm kiếm trong site của bạn hơn.
Có 2 loại Taxonomy phổ biến trong Wordpress là: Categories và Tags. Chúng đều thuộc một nhánh của taxonomy. Tổng cộng mặc định có 4 taxonomies trong WordPress để bạn nhóm bài viết lại với nhau là:
1. Taxonomy Category
Để phân loại bài viết theo thể loại dưới dạng cây, bạn có thể thực hiện 1 trong 2 cách sau:
Cách 1:
- Đăng nhập vào Dashboard và chuyển tới mục Posts -> Categories.
- Đặt tên Categories và định nghĩa nó, bạn có thể chèn slug hoặc tạo categories con

Cách 2:
Vào Posts -> Add New. Bạn có thể chèn thêm category trực tiếp trong giao diện viết bài mới. Mặc dù cách này dễ hơn nhưng nó không hỗ trợ tạo slug và description.

2. Tag
Tags cũng đơn giản giống như categories – nó nhóm các bài post lại với nhau. Tuy nhiên, nó không có cấu trúc dạng cây. Một tag chỉ là một tham số duy nhất giúp nhóm các bài viết tương tự lại với nhau, nó tập trung vào việc phân loại chi tiết nội dung, thay vì chủ đề chung.
Ví như bạn muốn tạo thể loại và thể loại phụ cho website điện ảnh của bạn. Bạn nên sử dụng taxonomy category thay vì tag, vì nó có hỗ trợ cấp độ dạng cây. Nhưng nếu bạn muốn nhóm các phim ảnh ở các thể loại lại, ví dụ như những phim có Brad Pitt đóng, bạn có thể tạo tags “Brad Pitt”
Tạo tags cũng đơn giản như là tạo categories. Bạn chỉ việc vào trong mục Posts -> Tags hoặc tạo trong trang bài viết, thanh điều hướng bên phải mục tag. Bạn cũng có thể tạo slug và mô tả cho tag.

Protip: Mặc dù tag không bắt buộc, nhưng categories thì lại bắt buộc điền cho mỗi bài viết. Từng bài cần có ít nhất một category nó thuộc về. Mặc định, WordPress sẽ đặt bài viết trong category “Uncategorized”.
Có 2 taxonomies không hiển thị lên cho người dùng. Mặc dù chúng ít được dùng hơn, nhưng vẫn đáng để nhắc tới.
3. Link_category
Taxonomy này giúp bạn phân loại các link. Nếu bạn link tới các nguồn cho bài viết của bạn, bạn sẽ cần dùng taxonomy link .
4. Post_format
Post_format giúp bạn phân loại nội dung dựa theo định dạng của nó – video, tiêu chuẩn, audio,... Bạn có thể thấy trong panel bên cạnh trình biên tập bài viết.

Giải mã khái niệm Custom Taxonomies là gì?
Trong thanh bên phải của trình biên tập bài viết, bạn sẽt thấy chỗ taxonomies của “Categories” và “Tags”. Nhưng nếu như bạn muốn tạo một taxonomy mới gọi là “People” thì sao? Bạn có thể tạo riêng một taxonomy cá nhân để phục vụ nhu cầu đặc biệt của bạn.
Ví dụ, nếu như bạn tạo một website thể dục. Thay vì chỉ có một categories chung chung, bạn có thể tạo thêm một taxonomies mới có tên “Cardio” và “Floor Exercises”. Mỗi taxonomy có thể được chỉnh sửa thêm nữa để chèn thêm categories phụ như “Jogging”, “Intermittent running”, và “Crunches”. Cũng giống như với tags. Bạn có tag gọi là “Fitness Instructor” thay vì các tên mặc định.

Vậy custom taxonomies là những taxonomies nằm ngoài 4 taxonomies mặc định của WordPress mà bạn thêm vào thủ công. Nhằm mục đích phân loại tốt hơn cho sản phẩm, bài viết của bạn.
Hướng dẫn Custom WordPress Taxonomies
Để Custom WordPress Taxonomies, bạn có thể thực hiện một trông 2 cách dưới đây. Một là với Plugin, hai là sử dụng Code. Cụ thể:
1. Với việc sử dụng Plugins
Plugins khiến mọi chuyện dễ dàng hơn và tạo custom taxonomy cũng vậy. Bạn không cần có kiến thức kỹ thuật để làm việc này. Các plugin khuyên dùng để tạo custom taxonomies là Custom Post Types UI và Pods.
Cách tạo custom taxonomy bằng Custom Post Type UI như sau:
- Cài đặt và kích hoạt plugin Custom Post Types UI
- Chuyển tới mục CPT UI -> Add/Edit Taxonomies
- Hoàn tất đăng ký taxonomy name. Trong trường hợp này, chúng tôi sửa dụng “Floor Exercise”. Cũng vậy, chọn post type bạng muốn để áp dụng cho taxonomy mới.

- Nhấn nút Add Taxonomy ở dưới cùng.
- Nếu chuyển tới mục Posts -> Add New, bạn sẽ thấy taxonomy mới hiện lên trên thanh chức năng bên phải.

Bạn có thể nhận ra có một taxonomy gọi là tag có tên “Floor Exercise”. Nếu như bạn muốn tạo taxonomy có cấu trúc phân cấp dạng cây như category thì sao? Rất dễ! Cuộn xuống một chút bạn sẽ thấy tùy chọn Hierarchical. Chỉnh về True là được.

Kết quả sẽ như sau:

2. Thêm code vào functions.php
Bạn có thể chọn phương pháp này để tạo custom taxonomy nếu biết code. Nếu không, hãy bỏ qua nó và sử dụng plugin thôi cũng được. Với cách này, bạn chỉ cần thêm vài dòng trong file functions.php trong thư mục gốc của theme là được. Lưu ý là những code cho loại taxonomy có cấp độ khác với taxonomy tự do không cấp độ nhé.
Tạo Hierarchical taxonomy (category):
//hook into the init action and call create_book_taxonomies when it fires
add_action( 'init', 'create_topics_hierarchical_taxonomy', 0 );
//create a custom taxonomy name it topics for your posts
function create_topics_hierarchical_taxonomy() {
// Add new taxonomy, make it hierarchical like categories
//first do the translations part for GUI
$labels = array(
'name' =_x( 'Topics', 'taxonomy general name' ),
'singular_name' =_x( 'Topic', 'taxonomy singular name' ),
'search_items' =__( 'Search Topics' ),
'all_items' =__( 'All Topics' ),
'parent_item' =__( 'Parent Topic' ),
'parent_item_colon' =__( 'Parent Topic:' ),
'edit_item' =__( 'Edit Topic' ),
'update_item' =__( 'Update Topic' ),
'add_new_item' =__( 'Add New Topic' ),
'new_item_name' =__( 'New Topic Name' ),
'menu_name' =__( 'Topics' ),
);
// Now register the taxonomy
register_taxonomy('topics',array('post'), array(
'hierarchical' =true,
'labels' =$labels,
'show_ui' =true,
'show_admin_column' =true,
'query_var' =true,
'rewrite' =array( 'slug' = 'topic' ),
));
}
Tạo Non-hierarchical taxonomy (tag):
//hook into the init action and call create_book_taxonomies when it fires
add_action( 'init', 'create_topics_hierarchical_taxonomy', 0 );
//create a custom taxonomy name it topics for your posts
function create_topics_hierarchical_taxonomy() {
// Add new taxonomy, make it hierarchical like categories
//first do the translations part for GUI
$labels = array(
'name' =_x( 'Topics', 'taxonomy general name' ),
'singular_name' =_x( 'Topic', 'taxonomy singular name' ),
'search_items' =__( 'Search Topics' ),
'all_items' =__( 'All Topics' ),
'parent_item' =__( 'Parent Topic' ),
'parent_item_colon' =__( 'Parent Topic:' ),
'edit_item' =__( 'Edit Topic' ),
'update_item' =__( 'Update Topic' ),
'add_new_item' =__( 'Add New Topic' ),
'new_item_name' =__( 'New Topic Name' ),
'menu_name' =__( 'Topics' ),
);
// Now register the taxonomy
register_taxonomy('topics',array('post'), array(
'hierarchical' =true,
'labels' =$labels,
'show_ui' =true,
'show_admin_column' =true,
'query_var' =true,
'rewrite' =array( 'slug' = 'topic' ),
));
}
Để xem taxonomy trong visual editor, mở file single.php từ Editor và dán đoạn code này vào:
the_terms( $post-ID, 'topics', 'Topics: ', ', ', ' ' );
Như vậy là bạn đã thực hiện xong một taxonomy có tên gọi là “Topic” sẽ hiện lên trên visual editor của bạn rồi đấy. Nếu trong quá trình thực hiện có gặp khó khăn khúc mắc gì hãy comment bên dưới để cùng trao đổi nhé.
Cảm ơn bạn đã theo dõi những chia sẻ của mình, hy vọng nó sẽ hỗ trợ cho bạn. Ngoài ra, nếu còn bất kỳ thắc mắc hay đóng góp gì, bạn cứ để lại comment để cùng nhau thảo luận nhé.