3 thg 1, 2015

Hiển thị toàn bộ category theo level của category

Qua bài viết get all term by level chúng ta cũng có thể lấy được các category ở các level khác nhau. Hôm nay chúng ta thêm 1 hàm nữa. Hàm này giúp chúng ta lấy toàn bộ category theo các cấp độ level và theo parent nữa.
Hiển thị toàn bộ category theo level của category

Hàm hiển thị category theo level

Các bạn chèn đoạn code sau vào file functions.php trong theme của bạn nhé
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function get_level($category$level = 0)
{
 if ($category->category_parent == 0) {
 return $level;
 else {
 $level++;
 $category = get_category($category->category_parent);
 return get_level($category$level);
 }
}
function display_cat_level( $level = 0 , $link = false, $parent = NULL){
 $catArgs array'hide_empty' => 0);
 if$parent != NULL ){
 $catArgs['child_of'] = $parent;
 }
 $cats = get_categories( $catArgs );
 if$cats ){
 foreach($cats as $cat){
 $current_cat_level = get_level($cat);
 if$current_cat_level == $level ){
 if($link==true) {
 echo '<a href="'.get_category_link($cat->cat_ID).'">'.$cat->name."</a><br />";
 else {
 echo $cat->name."<br />";
 }
 }
 }
 }
}
Sau đó muốn hiển thị ở đâu thì dùng hàm display_cat_level(<level>,true/false,<parent_ID>);
Ví dụ: như hình trên ta muốn hiển thị level 0 thì sẽ là
?
1
display_cat_level(0,true);//True nếu muốn có link, false không có link
Muốn hiển thị level 1 thì thế này:
?
1
display_cat_level(1,true);//True nếu muốn có link, false không có link
Muốn hiển thị level 2 của cat có ID 3 thì thế này
?
1
display_cat_level(2,true,3);//True nếu muốn có link, false không có link
Chúc các bạn thành công!

Không có nhận xét nào:

Đăng nhận xét