Hướng dẫn get category trong wordpress từ a đến z

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

Tiếp tục với chủ đề lập trình theme wordpress, bài viết này mình sẽ hướng dẫn get category trong wordpress cũng như là get taxomony (Một dạng custom của category). Bài viết này sẽ giúp cho các bạn hiển thị được danh sách chuyên mục cũng như danh mục sản phẩm… ra ngoài front end.

Trong website hocwordpress.vn mình cũng có sử dụng đoạn code này để thực hiện list các danh mục ra như hình phía dưới.

Hướng dẫn get category trong wordpress từ a đến z

Cú pháp get category trong wordpress

Chúng ta sẽ sử dụng hàm get_categories() để thực hiện công việc trên

<?php
$args = array(
    'type'      => 'post',
    'number'    => 10,
    'parent'    => 0
);
$categories = get_categories( $args );
foreach ( $categories as $category ) { ?>
     <?php echo $category->name ; ?>
<?php } ?>

Hàm get_categories() sẽ nhận tham số là 1 array ($args)

Kết quả trả về của hàm get_categories() là mảng (array) trong mảng đó chưa nhiều đối tượng (object), mỗi đối tượng tương ứng là 1 chuyên mục và trong chuyên mục sẽ chưa đẩy đủ các thành phần của chuyên mục đó.

Tham số của hàm get category trong wordpress

Như mình đã nói phần trên tham số của hàm get_categories() là một mảng, thành phần của mảng đó tùy thuộc vào yêu cầu của người dùng và truyền vào cho thích hợp. Cụ thể như sau:

<?php
$args = array(
	'type'                     => 'post',
	'child_of'                 => 0,
	'parent'                   => '',
	'orderby'                  => 'name',
	'order'                    => 'ASC',
	'hide_empty'               => 1,
	'hierarchical'             => 1,
	'exclude'                  => '',
	'include'                  => '',
	'number'                   => '',
	'taxonomy'                 => 'category',
	'pad_counts'               => false 
); 
?>

Tùy vào yêu cầu mà chúng ta thêm bớt các tham số phía trên nha.

Trong đó: 

  • ‘type’ là kiểu bài viết khi cài wordpress ban đầu thi sẽ có 2 kiểu đó là ‘post’ và ‘page’. Mặt nếu ko sử dụng điều kiện này thì nó sẽ nhận giá trị là ‘post’.
  • ‘child_of’ sẽ nhận 2 giá trị là 1 hoặc 0, Nếu nhận giá trị là 1 thì nó chỉ lấy các danh mục có danh mục con. Nếu nó nhận giá trị là 0 thì nó sẽ lấy tất cả danh mục. Mặt định nó nhận giá trị là 0.
  • ‘parent’ Sẽ nhận giá trị là id cha, Khi điền id cha vô đây nó sẽ list hết danh sách các chuyên mục con của parent.
  • ‘orderby’ Giá trị này nó nghĩ là sắp xếp theo, giá trị nhận có thể là : id, name, slug, count, term_group. Mặc định nó sẽ nhận giá trị là name.
  • ‘order’ Sẽ nhận 2 giá trị là: ASC hoặc DESC có nghĩ là sắp sếp theo giảm dân hoặc tăng dần. Mặt định nó là ASC.
  • ‘hide_empty’  Sẽ nhận 2 giá trị là 1 hoặc 0, Nếu nhận giá trị 1 là nó sẽ không hiển thị các danh mục mà chưa có bài viết.
  • hierarchical‘ Có hiện thị danh mục theo dạng cây hay ko. Nếu có điền giá trị 1, nếu không thì giá trị 0
  • ‘exclude’ Giá trị nhận ở đây là 1 mảng các id không muốn hiện thị trong chuyên mục.
  • ‘include’ Giá trị nhận là 1 mảng id sẽ xuất hiện trong chuyên mục
  • ‘number’ Số lượng danh mục muốn hiển thị.
  • ‘taxomony’ slug của taxomony cần lấy áp dụng cho custom category

Các giá trị trả về trong object:

$category->term_id // lấy id của chuyên mục
$category->name // lấy tên của chuyên mục
$category->slug // lấy slug của chuyên mục
$category->term_group // lấy nhóm
$category->term_taxonomy_id // id của chuyên mục
$category->taxonomy // lấy slug
$category->description // lấy mô tả chuyên mục
$category->parent // lấy id chuyên mục cha
$category->count // lấy số lượng bài viết của chuyên mục
$category->cat_ID // lấy id của category
$category->category_count // lấy số lượng bài viết của category
$category->category_description // lấy mô tả của category
$category->cat_name // lấy tên của category
$category->category_nicename // lấy slug của category
$category->category_parent // lấy id cha của category

Lấy link của một chuyên mục

Chúng ta sử dụng hàm sau để lây link của chuyên mục như sau

<?php echo get_term_link($category->slug, 'category'); ?>

Chổ category là slug của taxomony cần lấy, ví dụ lấy link của danh mục sản phẩm woo sẽ là “product_cat

Get category khi biết trước id, slug hoặc name

Khi biết id của 1 category bạn muốn lấy tất cả thông tin của category đó thì các bạn sử dụng hàm get_term_by cụ thể các get như sau:

// get category khi biết trước id
$category = get_term_by('id', 10, 'category')

// get category khi biết trước name
$category = get_term_by('name', 'Tin tức', 'category')

// get category khi biết trước slug
$category = get_term_by('slug', 'tin-tuc', 'category')

Giá trị trả về của hàm này cũng là 1 object, các thành phần trong object cũng tương tự phần trên

Get category trong wordpress dạng dropdown select

Để get category trong wordpress theo dạng dropdown chúng ta sử dụng hàm wp_dropdown_categories cụ thể như sau:

<?php $args = array(
	'show_option_all'    => '',
	'show_option_none' 	 => __( 'Danh mục' ),
	'option_none_value'  => '',
	'orderby'            => 'ID',
	'order'              => 'ASC',
	'show_count'         => 0,
	'hide_empty'         => 0,
	'child_of'           => 0,
	'include'            => '',
	'echo'               => 1,
	'selected'           => 0,
	'hierarchical'       => 1,
	'name'               => 'category',
	'id'                 => 'category',
	'class'              => 'form-control',
	'depth'              => 0,
	'tab_index'          => 0,
	'taxonomy'           => 'category',
	'hide_if_empty'      => false,
	'value_field'	     => 'slug',
); ?>
<?php wp_dropdown_categories( $args ); ?>

Mình đã áp dụng code này để làm chức năng search sản phẩm theo danh mục các bạn có thể xem thử nha.

Tổng kết

Hôm nay mình đã giới thiệu cho bạn cách get category trong wordpress, hi vọng với chút kiến thức này sẽ giúp các bạn trong quá trình học lập trình theme wordpress

Chào các bạn.

3.5 8 votes
Đánh giá bài viết

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

1 Bình luận
Bình chọn
Mới nhất Cũ nhất
Inline Feedbacks
View all comments
Foti pro trader

Admin chia sẻ rất hay, cảm ơn ad đã chia sẻ

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...

1
0
Would love your thoughts, please comment.x