Custom taxonomy trong wordpress từ a đến z và get chúng ra front end

Chào anh em! Tiếp tục với chủ đề hướng dẫn lập trình theme wordpress hôm nay mình sẽ hướng dẫn cho anh em cách custom taxonomy trong wordpress.

Vậy taxonomy là gì? Có quan trọng hay không? Tại sao chũng ta cần phải đi tìm hiểu nó? … Tất cả mình sẽ làm rõ trong bài này.

Custom taxonomy trong wordpress là gì ?

Mặc định khi cài wordpress lên thì trong phần post (Bài viết) chúng ta sẽ thấy có 2 phần là: Chuyên mụcthẻ. 2 phần này trong wordpress được gọi là taxonomy (Phân loại danh mục).

Việc đi tạo một phân loại danh mục mới có cấu trúc tương tự như chuyên mục hoặc thẻ, người ta gọi là custom taxonomy trong wordpress.

Ví dụ: Chúng ta có một custom post type là sản phẩm, bây giờ muốn chia sản phẩm theo từng danh mục thì mặc định wordpress không cung cấp sẵn. Chúng ta phải tạo một custom taxonomy “danh mục” để làm danh mục sản phẩm…

Custom taxonomy trong wordpress từ a đến z

 

Tạo custom taxonomy trong wordpress

Để tạo custom taxonomy các bạn chèn đoạn code sau vào file functions.php của theme đang sử dụng nhé.

À mình sẽ tạo 1 custom taxomony là địa điểm trong post nhé.

Cú pháp

function location_custom_taxonomy() {
    $labels = array(
        'name' => 'Địa điểm',
        'singular' => 'Địa điểm',
        'menu_name' => 'Địa điể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('dia-diem', 'post', $args);
}
add_action( 'init', 'location_custom_taxonomy', 0 );

Chú ý

  • hierarchical tham số có thể nhận 2 giá trị, nếu true thì chức năng tương tư chuyên mục, còn false thì chức năng tương tự thẻ
  • Hàm register_taxonomy nhận 3 tham số
    • ‘dia-diem’ Đây là slug của taxonomy sau này dùng nó để get dữ liệu. Đặt tên tùy thích, viết liền không dấu
    • ‘post’ đây là post type hiển thị taxonomy này. Ví dụ bạn muốn tạo taxonomy cho sản phẩm thì chổ này phải điền là ‘san-pham’ nha
    • $args là tham số khai báo phía trên

Tạo custom taxonomy bằng plugin

Ngoài cách tạo taxonomy bằng code như phía trên, thì cũng có rất nhiều plugin hỗ trợ việc này. Mình cũng đã có 1 bài viết về tạo custom taxonomy bằng plugin toolset types các bạn có thể tham khảo. Hoặc xem qua một số plugin free sau đây

Get custom taxonomy trong wordpress

Get danh sách custom taxonomy

Tương tự nhưng get category trong wordpress chúng ta dùng đoạn code sau chèn vào vị trí cần hiển thị trong theme nhé

<?php $args = array( 
    'hide_empty' => 0,
    'taxonomy' => 'danh-muc',
    ); 
    $cates = get_categories( $args ); 
    foreach ( $cates as $cate ) {  ?>
  <li>
   <a href="<?php echo get_term_link($cate->slug, 'danh-muc'); ?>"><?php echo $cate->name; ?></a>
  </li>
<?php } ?>

Chú ý : Tham số taoxonomy nhận giá trị là slug của taxonomy mà khi tạo chúng ta khai báo nhé

Get post với custom taxonomy trong wordpress

Để get danh sách các vài viết thuộc 1 taxonomy nào dó mặc định chúng ta sẽ đặt tên file là : taxonomy-{slug}.php như ví dụ trên thì ta sẽ đặt tên file là taxonomy-dia-diem.php

Đối với new wp_query chúng ta sẽ có đoạn code get post như sau:

<?php 
  $args = array(
    'posts_per_page' => -1,
    'post_type'      => 'post',
    'dia-diem'       => 'slug'
  );
  $the_query = new WP_Query( $args );
?>
<?php if( $the_query->have_posts() ): ?>
<?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
  // Thông tin cần lấy của 1 bài viết
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

Chú ý: slug ở tham số trên là slug của taxonomy cần lấy nha.

Tổng kết

Như vậy là hôm nay mình đã hướng dẫn cho anh em cách custom taxonomy trong wordpress. Đây cũng lại một trong những kiến thức hết sức quan trọng. Giúp cho website của chúng ta trở nên chuyên nghiệp hơn.

Mình sẽ tiếp tục cập nhật các bài viết mới nhất trong chủ đề này. Các bạn chú ý theo dõi nha!

Cảm ơn và xin chào các bạn.

3.7 3 votes
Đánh giá bài viết
Admin:
Leave a Comment