获取父类别的子级

时间:2012-11-29 作者:Chris Da Sie

我试图让所有的子类别都显示在这个循环中,但我正在努力处理代码。这就是我目前所拥有的。

<?php $args=array(\'orderby\' => \'name\', \'order\' => \'ASC\');
    $categories=get_categories($args); 
    foreach ($categories as $cat) { ?>
    <dt><a href="#" class="customer-acquisitiontop" id="<?php echo $cat->slug; ?>" data-filter=".<?php echo $cat->slug; ?>"><h2><?= $cat->cat_name; ?></h2></a></dt>
    <dd><div class="services">
    <?= $categories=get_categories(\'parent\'); ?> /*This should be the children of the parent category */
    </div>
    </dd>
<?php } ?>
任何帮助都会很好

4 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

不能将字符串“parent”传递给get_categories. 您必须传递父级的ID。

$categories=get_categories(
    array( \'parent\' => $cat->cat_ID )
);
请注意,有两个similar but not equal "get child" parameters 您可以使用的。

(integer)的child\\u显示由其ID标识的类别的子类别(即子类别和孙类别)的所有类别。此参数没有默认值。如果使用该参数,则hide\\u empty参数设置为false。

父级(整数)仅显示由其ID标识的类别的直接子级(即仅限子级)类别。这与“child\\u of”参数不同。此参数没有默认值。[在2.8.4中]

现在您需要在$categories. 你不能只回显一个数组。

foreach ($categories as $c) {
    var_dump($c);
    // what you really want instead of var_dump is something to
    // to create markup-- list items maybe, For example...
    echo \'<li>\'.$c->cat_name.\'</li>\';
}

SO网友:Violla Queue

在存档中使用以下代码。php文件。此代码将帮助您:

<?php

    $term = get_queried_object();

    $children = get_terms( $term->taxonomy, array(
        \'parent\'    => $term->term_id,
        \'hide_empty\' => false
    ) );

    if ( $children ) { 
        foreach( $children as $subcat )
        {
            echo \'<li><a href="\' . esc_url(get_term_link($subcat, $subcat->taxonomy)) . \'">\' . $subcat->name . \'</a></li>\';
        }
    }
?>

SO网友:croppio.com

如果数组中没有值,可以尝试以下方法:

$last_categories = get_categories(
  array(
    \'taxonomy\' => \'product_cat\',
    \'parent\' => $sub_category->cat_ID
  )
);

SO网友:Rashod Chamikara Bandara

要获取子类别,可以使用以下代码。

$category = get_queried_object(); // this is for getting the parent category on archive or any place the category object is called.
$categories=get_categories(
                        array( \'parent\' => $category->term_id,
                                \'hide_empty\' => false )
                                ); 
注意:-我使用“hide\\u empty”=>false来显示没有任何帖子的类别。然后使用$categories数组循环并进行标记。

结束

相关推荐

Multiple Loops Homepage?

WebDesignerDepot最近的重新设计给我留下了深刻的印象,我对他们主页的机制很好奇。我喜欢他们的特色帖子部分打破了页面的单调,但我还没有想出如何在我自己的设计中加入类似的东西。我猜他们正在使用多个循环,看起来就像[按时间顺序排列的主循环]-->[自定义循环]-->[按时间顺序排列的主循环]。如何中断到自定义循环中,然后继续在主循环中中断的位置?