如何使用get_categories仅显示子类别

时间:2013-07-22 07:31:09

标签: php wordpress

  

类别1
   - 二级类别
     - 第3级类别
      ---第4级类别
   - 二级类别
     - 第3级类别
      ---第4级类别
   - 二级类别
     - 第3级类别
      ---第四级别

如何使用show_count=1get_categories的列表中仅显示第4级类别?

好吧,截至目前我正在使用此代码,我从其他来源获得

<ul>
<?php wp_list_categories('child_of=2796&hide_empty=0&taxonomy=product_cat&title_li=red&depth=3&show_count=1'); ?>
</ul>

并显示此

Wine
  red
    Barbera (7)
        Barbera (7)  <-  last category
    Bonarda (2)
        Bonarda (2)  <-  last category
    Bordeaux Blend (15)
        Cabernet Franc (6)  <-  last category
        Cabernet Sauvignon (14)  <-  last category
        Merlot (15)  <-  last category
        Petit Verdot (3)  <-  last category
    Cabernet Franc (4)
        Cabernet Franc (4)  <-  last category
    Cabernet Sauvignon (29)
        Cabernet Sauvignon (29)  <-  last category

我需要它才能显示所有最后一个类别的列表

    Barbera (7)
    Bonarda (2)
    Cabernet Franc (6)
    Cabernet Sauvignon (14)
    Merlot (15)
    Petit Verdot (3)
    Cabernet Franc (4)
    Cabernet Sauvignon (29)
抱歉造成混乱,我不擅长: - (

2 个答案:

答案 0 :(得分:1)

你能再解释一下自己吗? show_count = 1,你的自定义函数get_categories()对我来说并不意味着什么。请添加您的脚本代码。

乍一看,我会说你最好把所有类别都放在一个数组中。例如:

$categories = array(
"level1" => array(1 => "level 1.1", 2 => "level 1.2"),
"level2" => array(1 => "level 2.1", 2 => "level 2.2", ...)
...
);

接下来你可以通过将其作为$ categories [x] [4](x =您想要解决的类别的编号)来获得第4级

答案 1 :(得分:0)

我想我可能已经为您找到了解决方案!

你的wp_list_categories应该是这样的:

<ul>
<?php wp_list_categories('orderby=name&include=3,5,9,16'); ?> 
</ul>

按名称对您的类别进行排序的位置,并且只按其ID包含某些类别。 因此,从上面它只列出ID为3,5,9和16

的类别

如果需要更长的时间来写出包含内容,您还可以exclude个类别。因此,假设您有include个ID超过exclude,请使用&exclude=6,11。它将排除ID为6和11的类别。

除非你为它编写一个插件,否则我认为没有更简单的解决方案!

您可以阅读此http://codex.wordpress.org/Template_Tags/wp_list_categories#Include_or_Exclude_Categories

了解更多信息