Cách tạo Custom Taxonomy trong WordPress

Với Custom Post Type, bạn có thể thêm và hiển thị sản phẩm trên website WordPress của mình. Còn với Custom Taxonomy, bạn có thể phân loại sản phẩm dễ dàng hơn. Custom Taxonomy tương tự như Category trong bài viết.

Ví dụ về Custom Taxonomy

Giả sử bạn có 3 loại điện thoại: Nokia, Samsung, iPhone. Bạn muốn tạo danh mục “điện thoại” để phân loại các sản phẩm. Trên website của bạn, URL danh mục sản phẩm sẽ có dạng như sau:

  • you-website.com/san-pham/dien-thoai/nokia/nokia-8
  • you-website.com/san-pham/dien-thoai/nokia/nokia-7
  • you-website.com/san-pham/dien-thoai/samsung/samsung-j7
  • you-website.com/san-pham/dien-thoai/samsung/samsung-s20

Để tạo Custom Taxonomy trong WordPress, bạn cần thêm đoạn mã dưới đây vào file functions.php:

function tao_custom_taxonomy() {
    $labels = array(
        'name' => 'Danh Mục Sản Phẩm',
        'singular_name' => 'Danh Mục Sản Phẩm',
        'menu_name' => 'Danh Mục Sản Phẩm',
        'all_items' => 'Tất Danh Mục Sản Phẩm',
        'parent_item' => 'Danh Mục Sản Phẩm Cha',
        'parent_item_colon' => 'Danh Mục Sản Phẩm Cha:',
        'new_item_name' => 'Danh Mục Sản Phẩm Mới',
        'add_new_item' => 'Thêm Mới Danh Mục Sản Phẩm',
        'edit_item' => 'Sửa Danh Mục Sản Phẩm',
        'update_item' => 'Cập Nhật Danh Mục Sản Phẩm',
        'search_items' => 'Tìm Kiếm Danh Mục Sản Phẩm',
        'add_or_remove_items' => 'Thêm Hoặc Xóa Danh Mục Sản Phẩm',
    );
    $args = array(
        'labels' => $labels,
        'hierarchical' => true,
        'public' => true,
        'show_ui' => true,
        'show_admin_column' => true,
        'show_in_nav_menus' => true,
        'show_tagcloud' => true,
    );
    register_taxonomy( 'danh-muc', 'san-pham', $args );
}
add_action( 'init', 'tao_custom_taxonomy', 0 );

Lưu ý: Đoạn mã register_taxonomy( 'danh-muc', 'san-pham', $args ); sẽ tạo taxonomy “danh-muc” cho custom post type “san-pham”.

Với đoạn mã trên, bạn đã tạo thành công Custom Taxonomy trong WordPress. Bạn cần sử dụng Loop hoặc WP Query để hiển thị danh mục sản phẩm ra trang chủ. Dưới đây là ví dụ cách sử dụng WP Query:

<?php
$categories = get_terms( 'danh-muc' );

foreach ( $categories as $category ):
    $services = new WP_Query(
        array(
            'post_type' => 'san-pham',
            'showposts' => -1,
            'tax_query' => array(
                array(
                    'taxonomy' => 'danh-muc',
                    'terms' => array( $category->slug ),
                    'field' => 'slug'
                )
            )
        )
    );
?>

<h3><?php echo $category->name; ?></h3>
<ul>
    <?php while ($services->have_posts()) : $services->the_post(); ?>
        <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
        <?php if ( has_post_thumbnail() ) {the_post_thumbnail( 'full' );}?>
    <?php endwhile; ?>
</ul>

<?php
$services = null;
wp_reset_postdata();
endforeach;
?>

Để hiển thị trang chủ theo ý muốn, bạn cần can thiệp vào code WordPress. Bạn có thể sử dụng get_template_part() hoặc vòng lặp để gọi Custom Post Type ra trang chủ.

Lưu ý: Trong quá trình thực hiện, bạn có thể gặp lỗi 404 khi truy cập vào liên kết. Để khắc phục, hãy vào Settings (Cài đặt) => Permalinks (Đường dẫn) => Ấn vào Save Changes để lưu lại.

Kết luận:
Khi đọc bài viết này, bạn đã hiểu rõ về cách tạo Custom Taxonomy trong WordPress. Nếu bạn gặp khó khăn, hãy để lại bình luận để tôi giúp bạn!

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *