Hướng dẫn lấy danh mục trong wordpress (Get category)

03/08/2016 Wordpress 37596 lượt xem
Lưu bài viết

Tiếp tục với loại bài hướng dẫn lập trình wordpress cho người mới bắt đầu, hôm nay mình xin giới thiệu cách lấy danh mục trong wordpress hay còn gọi là get category.

Nếu bạn nào chú ý thì khi vào web mình sẽ thấy phần danh mục (Chuyên mục ) được mình bố trí bên phải tay phải. Mình đã sử dụng hàm get_categories() để làm được điều đó. Bài này chúng ta sẽ tìm hiểu cách sử dụng hàm  get_categories().

lay-danh-muc-trong-wordpress

Lấy danh mục trong wordpress

Cú pháp để lấy danh mục trong wordpress:

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

Giải thích:

Đầu tiên chúng ta khai báo 1 biến $args là 1 mảng dữ liệu chứa các thành phần là các điều kiện để lấy danh mục. Tiếp theo chúng ta gán biến $categories=get_categories( $args ) lúc này những điều kiện $args đã được truyền vào hàm get category để xử lý và trả về  biến $categories là một giá trị và giá trị có kiểu mảng.

Để lấy dữ liệu có kiểu mảng chúng ta sử dụng vòng lặp foreach để lấy như trong php thông thường.

Các điều kiện lấy danh mục trong worpress:

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

); 

?>

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ị.
  •  'pad_counts'

Các giá trị trả về

$category->term_id
$category->name
$category->slug
$category->term_group
$category->term_taxonomy_id
$category->taxonomy
$category->description
$category->parent
$category->count
$category->cat_ID
$category->category_count
$category->category_description
$category->cat_name
$category->category_nicename
$category->category_parent

Đó là các giá trị trả về khi chúng ta sử dụng hàm get_category(), tùy trường hợp sử dụng mà chúng ta lấy các giá trị trả về phù hợp.

ví dụ như:

  • $category->term_id // Lấy id chuyên mục
  • $category->name // lấy tên chuyên dụng
  • $category->slug // Lấy đường dẫn chuyên mục
  • $category->description // Lấy phần mô tả
  • $category->parent // lấy mô tả của chuyên mục
  • $category->count //Lấy số lượng bài viết có trong chuyên mục
  • Ngoài trả còn 1 số dữ liệu trả về khác ít sử dụng mình ko giời thiệu các bạn có thể lên mạng tìm hiểu thêm nếu cần thiết.

Ví dụ:

lấy danh mục trong wordpress

Mình muốn hiện thị như ảnh trên thì làm như sau:

<ul>
<?php
$args = array(
    'child_of'  => 0,
    'orderby'    => 'íd',
);
$categories = get_categories( $args );
foreach ( $categories as $category ) { ?>
<li>
   <a href="<?php echo get_term_link($category->slug, 'category');?>">
      <?php ehco $category->name ; ?>
      (<?php echo $category->count; ?>)
   </a>
</li>
<?php } ?>
</ul>

Trong đoạn code trên lưu ý 1 số điểm:

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

Đoạn code này dùng để lấy link danh mục. Có 2 tham số là $category->slug Đường dẫn của danh mục, Còn category là tên mặc định.

Tổng kết:

Trên đây mình xin giới thiệu cho các bạn cách lấy danh mục trong wordpress. Đây chỉ là 1 cách trong rất nhiều cách lấy danh mục trong wordpress bạn có thể lên internet tìm hiểu thêm. Bài sau này bạn có thể áp dụng để lấy danh mục sản phẩm vv... Tùy theo yêu cầu hay chức năng của trang web mà chúng ta thêm các điệu kiện cũng như lấy các giá trị trả về cần thiết.

Từ khóa tìm kiếm: 'Lấy danh mục trong wordpess',' get category wordpress'.

Bài sau chúng ta sẽ học cách lấy Menu, là lấy sidebar (widget).

Có gì chưa rõ các bạn hãy CMT phía dưới hoặc vào nhóm! Học Wordpress

Chào thân ái và quyết thắng!!