Hiện danh mục con khi vào danh mục cha trong WordPress
Khi làm việc với web Wordpress, chắc hẳn Bạn sẽ không ít lần gặp khách hàng có yêu cầu chỉ hiển thị danh mục con khi vào danh mục cha
Khi làm việc với web WordPress, chắc hẳn Bạn sẽ không ít lần gặp khách hàng có yêu cầu chỉ hiển thị danh mục con khi vào danh mục cha. Nếu Bạn chưa có hướng giải quyết cho vấn đề này thì có thể tham khảo bài viết này của Mình
Hiện danh mục con khi vào danh mục cha trong WordPress:
Tìm đến File category.php (file hiển thị danh mục của WordPress):
– Đầu tiên bạn cần lấy thông tin của danh mục hiện tại
<?php $vnkings_cat_id = get_cat_id( single_cat_title("",false) ); // Lấy id của Danh mục hiện tại ?>
– Tiếp theo bạn dùng vòng lặp lấy ra Danh mục con
<?php $categories = get_categories( array('child_of' => $vnkings_cat_id,'hide_empty' => 0,'orderby' => 'id', 'order' => 'ASC',)); if(!empty($categories)){ ?> <ul> <?php foreach($categories as $cat){ if('Uncategorized' != $cat->name){ ?> <li><a href="<?php echo get_category_link($cat->term_id); ?>" ><?php echo $cat->name; ?></a></li> <?php } } ?> </ul> <?php } else { ?> <ul> <li class="cat"><a href="<?php echo get_category_link($vnkings_cat_id); ?>"><?php echo get_cat_name($vnkings_cat_id); ?></a></li> </ul> <?php } ?>
Giải thích :
- get_categories(array(…)) : Lấy toàn bộ Danh mục con có danh mục cha ID là $vnkings_cat_id
- if(!empty($categories)){} : Nếu có danh mục con thì hiển thị toàn bộ danh mục con này
- else{} : Nếu Danh mục hiện tại không có Danh mục con, thì hiện ra danh mục hiện tại
Vậy ta có 1 đoạn Code hoàn chỉnh :
<?php $vnkings_cat_id = get_cat_id( single_cat_title("",false) ); $categories = get_categories( array('child_of' => $vnkings_cat_id,'hide_empty' => 0,'orderby' => 'id', 'order' => 'ASC',)); if(!empty($categories)){ ?> <ul> <?php foreach($categories as $cat){ if('Uncategorized' != $cat->name){ ?> <li><a href="<?php echo get_category_link($cat->term_id); ?>" ><?php echo $cat->name; ?></a></li> <?php } } ?> </ul> <?php } else { ?> <ul> <li class="cat"><a href="<?php echo get_category_link($vnkings_cat_id); ?>"><?php echo get_cat_name($vnkings_cat_id); ?></a></li> </ul> <?php } ?>
Như vậy chỉ với vài dòng code đơn giản bạn đã giải quyết được vấn đề này.
Chúc các bạn thành công!
Chào bạn. Giờ minh dùng custom-postype mình muốn list tự động các taxomy thì làm thế nào cậu nhỉ?
Đầu tiên bạn cũng lấy id của term cha:
Sau đó bạn có thể dùng thế này để lấy danh mục con
Hi anh. me muốn mỗi category con hiển thị kèm theo 5 bài viết thì làm thế nào hả anh
Em đọc thử bài viết này nhé:
https://wordpress.vnkings.com/tao-danh-sach-bai-viet-moi-theo-category-trong-wordpress.html
Để ở ngoài trang chủ nó không hiện vì không có id để get, giờ e muốn hiện danh mục con của danh mục cha theo id mình nhập vào thì làm sao a
Em thay $vnkings_id = id mà e muốn nhập là được mà
Chào bạn, mình muốn hiển thị danh mục con trong custom post type, đã dán đoạn code trong phần comment của bạn vào nhưng không hiện. Bạn chỉ giúp mình được không?
Bài viết quá hay. Đã phần nào xử lý được vấn đề của mình. Cảm ơn Love Nd nhiều nhiều nhé 😀
Ok, Không có gì bạn.
Mình có thêm nếm một chút nữa nhưng về cơ bản là đã giải quyết được vấn đề mà mình mất cả ngày nay ngồi mò mẫm hết trang này trang khác mà ko xử lý được. Hi rất mong bạn tiếp tục ra những bài mới để mình và mọi người theo dõi nhé ^^
xin cho hỏi là nếu có nhiều danh mục con mà muốn chia làm 2 cột thì có được ko? nếu được thì làm thế nào vậy ạ?
Hoàn toàn được bạn ạ, phần css bạn chỉ cần đặt thuộc tính và giá trị cho thẻ
li
là {display:inline-block;float:left;width:50%}có thể nào custom được sidebar theo category không bạn. tức là xem bài viết ở chuyên mục A thì sidebar sẽ hiển thị theo như mình custom dành cho chuyên mục A. xem bài viết ở chuyên mục B thì sidebar khác ấy
Mình đả làm thành công
e dùng themes easy pro nhưng giờ ko tìm thấy file category.php thì làm thế nào ạ. e cảm ơn
Chào em, nếu không có file category thì có thể tìm file archive.php em nhé.
cái này là danh mục bài viết. còn nếu em muốn hiển thị như thế theo danh mục sản phẫm sử dụng woocomerce thì code thế nào ạ. mong anh giúp đỡ
Bác lực ơi cho em hỏi chút xíu được không ạ. Ví dụ em chỉ muốn hiện danh mục con ở cấp độ 1 thôi. Sau vào cấp độ 1 thì lại hiện danh mục con của cấp độ 2 thì phải làm thế nào ạ. Cảm ơn bác nhiều ạ
Làm sao để cho vào sidebar giống như hình ảnh thumbnail của bạn vậy, bạn hướng dẫn kỹ hơn được không ạ
Mình copy hết cod trên vào là chạy hay sao. Vd mình có danh mục cha là “bàn ăn” thì mình phải thế vào đâu ?. Mình mò theo 2 ngày rồi chưa làm được. Thanks
Chào bạn,
Bạn copy code trên vào thư mục Category.php là được đó bạn. Khi vào danh mục Cha, nếu có danh mục con, nó sẽ tự hiển thị.
e chào a ạ. a cho e hỏi nếu muốn hiển thị cả ảnh của danh mục con và danh mục hiện tại thì sẽ phải chỉnh thế nào ạ.