很多网站经常会有显示当前页面子分类的需求,对WordPress来说,实现起来非常的简单,只需要增加一个功能函数就可以搞定。
先在function.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号
}
然后在需要显示二级分类的地方(一般是侧边栏),调用这个功能就可以了。
if(is_category()) {
if(get_term_children(get_category_root_id(the_category_ID(false))) !== "" ) {
$root_term_id = get_category_root_id(the_category_ID(false));
echo wp_list_categories("child_of=$root_term_id&depth=0&hide_empty=0&title_li=&orderby=id&order=ASC");
echo '';
}
}
调用后,显示出来的就是如下图的一个子分类列表,至于样式,那是CSS的事情,跟PHP无关。
WordPress后台不支持分类的排序,这样显示子分类的时候顺序有可能是乱的,这个功能就需要一个分类顺序调整的插件了,有时间再单独写文介绍。
2 thoughts on “WordPress 在分类存档页面显示当前分类的子分类”
解决了我的大问题,不知道能不能支持自定义文章类型。
稍作修改是可以支持的。