WordPress文章页获取顶级父分类下所有子分类列表
使用WordPress做网站时,怎么在文章页调用顶部父类下所有子分类列表呢?效果如下图:
与在分类页调用顶部父类下所有子分类列表不同,如果要在文章页获取顶部父类下所有子分类列表,需要分二步。
第一步:获取父分类ID的函数,将下面的函数放到functions.php里;
function get_category_root_id($cat)
{
$this_category = get_category($cat);
while($this_category->category_parent)
{
$this_category = get_category($this_category->category_parent);
}
return $this_category->term_id;
}
第二步:获取文章所属顶级分类ID。通过下面的代码来获取文章所属顶级分类ID。
<?php $currecategory = get_the_category();$djcatid = get_category_root_id($currecategory[0]->cat_ID);?>
第三步:通过顶级分类ID获取所有子分类列表。
<?php wp_list_cats('sort_column=name&optioncount=0&hierarchical=1&hide_empty=0&child_of='.$djcatid.''); ?>
第四步:如果想更灵活的应用,可以使用下面的循环代码来显示;
<?php
$cats = get_categories(array(
'child_of' => $djcatid,
'parent' => $djcatid,
'hide_empty' => 0
));
if(!empty($cats)){
foreach($cats as $the_cat){
echo '
<li><a href="'.get_category_link($the_cat).'" class="sl1 slli">'.$the_cat->name.'</a></li>';
}
}
?>