• 售前

  • 售后

热门帖子
入门百科

wordpress调用当前分类下子分类的方法

[复制链接]
戏做顿 显示全部楼层 发表于 2021-8-15 20:15:16 |阅读模式 打印 上一主题 下一主题
本文实例报告了wordpress调用当前分类下子分类的方法。分享给各人供各人参考。具体分析如下:
自己没用过wordpress博客但是个人认为wordpress有函数可直接来子调用当前分类下的子分类的,但是我找了很久没找到,厥后找到一具朋侪自己的做法,下面我来整理一下.
在企业网站中,点击根分类时,体现当前根分类下的子分类,这是个很常见的需求,大多cms也能实现这个功能,如果利用wordpress架构,可以吗?
答案是肯定的,wordpress也可以实现这样的功能.
其实紧张用到wp_list_categorys()函数,该函数的child_of参数是一个数字,体现指定ID(也就是所填的这个数字)下的子分类,这样只要找到当前分类根分类的ID就可以体现了。
the_category_ID()用于体现当前页面的分类ID,默认是输出的,作为参数通报时,最好传入一个false参数,即the_category_ID(false)获取当前分类ID。
接着就是要获取当前分类的父ID,这个也是本文的重中之重,扒了很多资料,也没找到直接可以实现的,不外通过一个函数,倒可以间接获取,代码如下:

复制代码代码如下: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号  
}
实例2:
1.如今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号  
}
2.然后在页面要体现二级分类的地方粘贴下面这段代码即可

复制代码代码如下:<?php  
if(is_single()||is_category())  
{  
if(get_category_children(get_category_root_id(the_category_ID(false)))!= "" )  
{  
echo '<ul>';  
echo wp_list_categories("child_of=".get_category_root_id(the_category_ID(false)). "&depth=0&hide_empty=0&title_li=&orderby=id&order=ASC");  
echo '</ul>';  
}  
}  
?>
如今就万事具备了,我们就实现一下吧,代码如下:

复制代码代码如下:wp_list_categories("child_of=".get_category_root_id(the_category_ID(false)). "&depth=0&hide_empty=0&title_li=");
得到WordPress指定分类(包括子分类)下的所有文章数,代码如下:

复制代码代码如下:$parent_array = get_categories('hide_empty=0&parent=79');  
//利用get_categories()函数,内里参数的意思是hide_empty把子分类下没有文章的也体现出来  
//parent 父级分类的ID号  
foreach($parent_array as $k=>$v)  //第一步  
{  
$sub_parent_array = get_categories('parent='.$v->cat_ID);  
  foreach($sub_parent_array as $kk=>$vv)   //第二步  
  {  
     $three_parent_array = get_categories('hide_empty=0&parent='.$vv->cat_ID);  
     foreach($three_parent_array as $kkk=>$vvv)  //第三步  
     {  
        $three_count +=$vvv->category_count;  //第三极子分类下文章数举行统计  
     }  
     $sub_count +=$vv->category_count;  //第二级子分类下文章数举行统计  
  }  
$count +=$v->category_count;  //第一级子分类下文章数举行统计  
}  
$total = $count+$sub_count+$three_count;  
//将第一级和第二级和第三级统计的文章数目举行相加后放到一个变量中。
这样我们通过php的foreach循环用很少的代码就将一个分类下的文章数目统计出来了。
盼望本文所述对各人的WordPress建站有所资助。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作