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

Ngày đăng: 04 - 05 - 2020 Lượt xem: 2166 lượt

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

Nhận thông báo
Nhận thông báo cho
guest

0 Góp ý
Inline Feedbacks
View all comments

Bài viết liên quan

Tạo và quản lý vai trò người dùng trong WordPress

Tạo và quản lý vai trò người dùng trong WordPress

18 - 12 - 2021

WordPress đã là một lựa chọn phổ biến cho các trang web cần hệ thống quản lý nội dung...

Đếm số lượt xem bài viết WordPress

Đếm số lượt xem bài viết WordPress

19 - 04 - 2021

Đếm số lượt xem bài viết WordPress? Bạn đang muốn tạo bộ đếm số lượt xem trang/ bài viết để...

Sử dụng child theme trong WordPress

Sử dụng child theme trong WordPress

23 - 02 - 2021

Sử dụng child theme trong WordPress như thế nào? Nếu bạn đã từng sử dụng WordPress để xây dựng các...

Hướng dẫn tạo sidebar và get sidebar trong wordpress

Hướng dẫn tạo sidebar và get sidebar trong wordpress

08 - 05 - 2020

Sidebar trong wordpress sẽ giúp website linh động hơn. Giúp khách hàng có thể thay đổi một số thành...

Hướng dẫn tạo menu và get menu trong wordpress

Hướng dẫn tạo menu và get menu trong wordpress

07 - 05 - 2020

Menu trong wordpress là một thành phần khá quan trọng. Hầu hết các website wordpress đều có chức năng...

Hướng dẫn get user và custom user field trong wordpress

Hướng dẫn get user và custom user field trong wordpress

07 - 05 - 2020

Tiếp tục với seri hướng dẫn lập trình theme wordpress, hôm nay mình sẽ hướng dẫn cho các bạn...

0
Would love your thoughts, please comment.x