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

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!