Tạo custom taxonomies trong WordPress

Giới thiệu về Custom Taxonomies trong WordPress
WordPress không chỉ là một nền tảng viết blog đơn thuần, mà là một hệ thống quản lý nội dung (CMS) mạnh mẽ, linh hoạt. Một trong những tính năng giúp WordPress trở nên mạnh mẽ như vậy là khả năng tạo các custom taxonomies. Custom taxonomies cho phép bạn tổ chức và phân loại nội dung của mình một cách tùy chỉnh, vượt xa những phân loại mặc định như Categories (Chuyên mục) và Tags (Thẻ). Điều này đặc biệt hữu ích khi bạn có những loại nội dung đặc biệt cần được phân loại theo những tiêu chí riêng, chẳng hạn như loại sản phẩm, thể loại sách, hoặc kỹ năng trong hồ sơ nhân viên.
Bài viết này sẽ hướng dẫn bạn cách tạo và sử dụng custom taxonomies trong WordPress, giúp bạn tận dụng tối đa sức mạnh của nền tảng này để tổ chức và hiển thị nội dung một cách hiệu quả.
Tại sao cần Custom Taxonomies?
Chắc hẳn bạn tự hỏi tại sao lại cần đến custom taxonomies khi đã có Categories và Tags. Câu trả lời nằm ở sự linh hoạt và khả năng tổ chức nội dung một cách chuyên biệt hơn. Hãy xem xét một vài ví dụ:
- Nếu bạn đang điều hành một trang web bán hàng trực tuyến, bạn có thể tạo một custom taxonomy “Loại sản phẩm” để phân loại sản phẩm theo các danh mục như “Điện tử”, “Thời trang”, “Gia dụng”,… Điều này giúp khách hàng dễ dàng tìm kiếm sản phẩm hơn.
- Nếu bạn có một trang web review phim, bạn có thể tạo một custom taxonomy “Thể loại phim” để phân loại phim theo các thể loại như “Hành động”, “Hài”, “Tình cảm”,… Điều này giúp người dùng dễ dàng tìm thấy những bộ phim thuộc thể loại yêu thích của họ.
- Nếu bạn có một trang web về công thức nấu ăn, bạn có thể tạo một custom taxonomy “Loại món ăn” để phân loại công thức theo các loại như “Khai vị”, “Món chính”, “Tráng miệng”,… Điều này giúp người dùng dễ dàng tìm kiếm những công thức họ đang tìm kiếm.
Nói tóm lại, custom taxonomies cho phép bạn tạo ra những cách phân loại nội dung phù hợp nhất với nhu cầu và đặc thù của trang web của bạn, giúp cải thiện trải nghiệm người dùng và tăng khả năng tìm kiếm nội dung.
Cách tạo Custom Taxonomies trong WordPress
Có hai cách chính để tạo custom taxonomies trong WordPress:
- Sử dụng plugin: Đây là cách dễ dàng và nhanh chóng nhất, đặc biệt phù hợp với người mới bắt đầu. Có rất nhiều plugin miễn phí và trả phí hỗ trợ tạo custom taxonomies, ví dụ như “Custom Post Type UI” hoặc “Pods”.
- Sử dụng code: Cách này đòi hỏi bạn phải có kiến thức về PHP và code WordPress. Tuy nhiên, nó cho phép bạn kiểm soát hoàn toàn quá trình tạo và quản lý custom taxonomies.
Trong phần này, chúng ta sẽ đi sâu vào cả hai cách tiếp cận này.
1. Tạo Custom Taxonomies bằng Plugin (Custom Post Type UI)
Plugin Custom Post Type UI là một trong những plugin phổ biến và dễ sử dụng nhất để tạo custom post types và taxonomies trong WordPress. Dưới đây là các bước để tạo một custom taxonomy bằng plugin này:
- Cài đặt và kích hoạt plugin “Custom Post Type UI” từ kho plugin của WordPress.
- Sau khi kích hoạt, bạn sẽ thấy một mục mới “CPT UI” trong menu quản trị WordPress.
- Click vào “CPT UI” -> “Add/Edit Taxonomies”.
- Điền các thông tin cần thiết:
- Taxonomy Slug: Đây là tên duy nhất của taxonomy, được sử dụng trong URL và trong code. Ví dụ: “the_loai_sach”.
- Plural Label: Tên số nhiều của taxonomy, ví dụ: “Thể loại sách”.
- Singular Label: Tên số ít của taxonomy, ví dụ: “Thể loại sách”.
- Chọn post types mà bạn muốn taxonomy này áp dụng. Ví dụ: “Bài viết” hoặc một custom post type bạn đã tạo trước đó.
- Cấu hình các tùy chọn khác như hierarchical (phân cấp, giống như Categories) hay non-hierarchical (không phân cấp, giống như Tags).
- Click “Add Taxonomy” để tạo taxonomy.
Sau khi tạo taxonomy, bạn có thể vào trang chỉnh sửa bài viết hoặc custom post type đã chọn để gán các terms (thuật ngữ) cho taxonomy mới tạo. Bạn cũng có thể quản lý các terms này trong mục “Taxonomies” mới xuất hiện trong menu quản trị.
2. Tạo Custom Taxonomies bằng Code
Tạo custom taxonomies bằng code mang lại sự linh hoạt và kiểm soát cao hơn. Bạn có thể thêm code vào file functions.php
của theme hoặc tạo một plugin riêng để giữ code sạch sẽ và dễ quản lý. Dưới đây là ví dụ về code để tạo một custom taxonomy “the_loai_phim” liên kết với custom post type “phim”:
function create_the_loai_phim_taxonomy() {
$labels = array(
'name' => _x( 'Thể loại phim', 'taxonomy general name' ),
'singular_name' => _x( 'Thể loại phim', 'taxonomy singular name' ),
'search_items' => __( 'Tìm thể loại phim' ),
'all_items' => __( 'Tất cả thể loại phim' ),
'parent_item' => __( 'Thể loại phim cha' ),
'parent_item_colon' => __( 'Thể loại phim cha:' ),
'edit_item' => __( 'Sửa thể loại phim' ),
'update_item' => __( 'Cập nhật thể loại phim' ),
'add_new_item' => __( 'Thêm thể loại phim mới' ),
'new_item_name' => __( 'Tên thể loại phim mới' ),
'menu_name' => __( 'Thể loại phim' ),
);
$args = array(
'hierarchical' => true, // true để tạo taxonomy phân cấp (như Categories), false để tạo taxonomy không phân cấp (như Tags)
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'the-loai-phim' ), // Thiết lập slug cho URL
);
register_taxonomy( 'the_loai_phim', array( 'phim' ), $args ); // 'phim' là custom post type mà taxonomy này liên kết với
}
add_action( 'init', 'create_the_loai_phim_taxonomy', 0 );
Giải thích code:
create_the_loai_phim_taxonomy()
: Đây là tên hàm tạo taxonomy.$labels
: Mảng này định nghĩa các nhãn cho taxonomy, chẳng hạn như tên số nhiều, tên số ít, các nhãn cho các hành động như “Thêm mới”, “Sửa”,…$args
: Mảng này định nghĩa các tham số cho taxonomy, chẳng hạn như hierarchical, labels, show_ui (hiển thị trong giao diện quản trị), show_admin_column (hiển thị cột trong danh sách bài viết), query_var, và rewrite (cấu hình URL).register_taxonomy( 'the_loai_phim', array( 'phim' ), $args )
: Hàm này đăng ký taxonomy với WordPress. Tham số đầu tiên là taxonomy slug, tham số thứ hai là một mảng chứa các post types mà taxonomy này liên kết với, và tham số thứ ba là mảng các tham số.add_action( 'init', 'create_the_loai_phim_taxonomy', 0 )
: Hàm này gắn hàmcreate_the_loai_phim_taxonomy()
vào hookinit
, đảm bảo rằng taxonomy được tạo khi WordPress khởi động.
Lưu ý:
- Thay thế
'the_loai_phim'
bằng taxonomy slug của bạn. - Thay thế
'phim'
bằng custom post type mà bạn muốn liên kết taxonomy với. - Sau khi thêm code, bạn cần vào Settings -> Permalinks và nhấn “Save Changes” để WordPress cập nhật rewrite rules.
Hiển thị Custom Taxonomies trên Trang Web
Sau khi tạo custom taxonomy, bạn cần hiển thị nó trên trang web của mình. Có nhiều cách để làm điều này, tùy thuộc vào mục đích và thiết kế của bạn.
1. Hiển thị danh sách terms của taxonomy
Bạn có thể hiển thị danh sách các terms của taxonomy bằng cách sử dụng hàm wp_list_categories()
hoặc get_terms()
. Ví dụ, để hiển thị danh sách các thể loại phim (taxonomy “the_loai_phim”), bạn có thể sử dụng code sau:
<ul>
<?php
$terms = get_terms( array(
'taxonomy' => 'the_loai_phim',
'hide_empty' => false, // Hiển thị cả các terms không có bài viết
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
foreach ( $terms as $term ) {
echo '<li><a href="' . esc_url( get_term_link( $term ) ) . '" alt="' . esc_attr( sprintf( __( 'View all post filed under %s', 'my_text_domain' ), $term->name ) ) . '">' . $term->name . '</a></li>';
}
}
?>
</ul>
2. Hiển thị terms của taxonomy trong bài viết
Bạn có thể hiển thị các terms của taxonomy được gán cho một bài viết cụ thể bằng cách sử dụng hàm get_the_terms()
. Ví dụ, để hiển thị các thể loại phim của một bài viết, bạn có thể sử dụng code sau trong file single.php
của theme:
<?php
$terms = get_the_terms( get_the_ID(), 'the_loai_phim' );
if ( $terms && ! is_wp_error( $terms ) ) :
?>
<ul class="the-loai-phim">
<li><strong>Thể loại:</strong></li>
<?php foreach ( $terms as $term ) { ?>
<li><a href="<?php echo get_term_link( $term ); ?>"><?php echo $term->name; ?></a></li>
<?php } ?>
</ul>
<?php endif; ?>
3. Tạo trang lưu trữ cho taxonomy
WordPress tự động tạo trang lưu trữ cho mỗi taxonomy, nơi hiển thị danh sách các bài viết được gán cho một term cụ thể. Bạn có thể tùy chỉnh trang lưu trữ này bằng cách tạo một file template taxonomy-{taxonomy-slug}.php
trong theme của bạn. Ví dụ, để tùy chỉnh trang lưu trữ cho taxonomy “the_loai_phim”, bạn có thể tạo file taxonomy-the_loai_phim.php
.
Lời kết
Custom taxonomies là một công cụ mạnh mẽ để tổ chức và phân loại nội dung trong WordPress. Bằng cách sử dụng custom taxonomies, bạn có thể tạo ra những cách phân loại nội dung phù hợp nhất với nhu cầu của mình, giúp cải thiện trải nghiệm người dùng và tăng khả năng tìm kiếm nội dung. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để bắt đầu sử dụng custom taxonomies trong WordPress. Chúc bạn thành công!