显示基于父术语

时间:2014-06-09 13:33:35

标签: wordpress taxonomy custom-taxonomy

我需要根据父术语显示小部件区域..

例如: -

汽车  一个。涉  湾保时捷  C。 BMW

自行车  一个。本田  湾哈雷  C。雅马哈

我的自定义分类是custom_categories

如果我在分类法页面上,如something.com?custom_categories=ford或custom_categories =宝马或所有儿童类别的汽车 "然后显示小部件区域A,如果" 如果我在分类学页面上的something.com?custom_categories = honda或所有儿童类别的自行车 "然后显示小部件区域B"

例如: - 如果parent_tax是汽车,那么如果parent_tax是自行车那么做小工具1,那么做widget2

2 个答案:

答案 0 :(得分:1)

要做到这一点,你需要获得你所在职位的当前名词(儿童分类法),以及父母所在的名字:

$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$parent = get_term($term->parent, get_query_var('taxonomy') );
//Return an object $term and parent $term

然后通过比较$ term-> name或查看当前术语是否具有与名称匹配的父级来查找特定术语:

if($term->name == 'bikes' || $parent->name == 'bikes')):
    // Do widget
else if ($term->name == 'cars' || $parent->name == 'cars')):
    // Do other widget
else:
    // Do default

答案 1 :(得分:0)

听起来你想要汽车的父母类别。如果你有像M3一样的宝马车型,你想要显示汽车或宝马的父类别的小部件。

您可以在wordpress中使用get_category_parents功能。 The function isn't well documented if it returns all parents or just the next parent up.所以我不确定该函数是仅返回BWM还是完整类别或汽车或两者。您可能必须将其嵌套才能一直到类别列表的顶部。

无论您何时返回类别,您都可以编写if语句来显示小部件或执行某些操作。

你只是做

    if ($catParent == 'BWM'){
          //call/show widget 1
           }else if($catParent == 'Ford'){
                   //call widget 2 function
                }else{
                  //Call widget 3 or do something completely different.
                  }