WordPress get_category无法在forloop

时间:2017-06-21 16:36:56

标签: php wordpress woocommerce

我尝试根据woocommerce中的给定父产品类别显示所有子产品类别的数据。我可以使用WordPress函数get_term_children获取一系列产品类别ID。

$category_children = get_term_children( 25, 'product_cat' );

foreach ( $category_children as $category_id ) {
    echo '<br> cat ID' . $category_id;

    echo '<pre>';
    print_r(get_category($category_id));
    echo '</pre>';
}

问题是当我尝试在循环中显示该数据时。在这种情况下,我有两个子产品类别。我的循环只返回除最后一个ID之外的所有数据。这是我得到的。奇怪的是,我可以看到循环正在抓取$category_children中的所有ID。

cat ID 26
WP_Term Object
(
    [term_id] => 26
    [name] => Shirts
    [slug] => shirts
    [term_group] => 0
    [term_taxonomy_id] => 26
    [taxonomy] => product_cat
    [description] => 
    [parent] => 25
    [count] => 2
    [filter] => raw
    [meta_value] => 0
    [cat_ID] => 26
    [category_count] => 2
    [category_description] => 
    [cat_name] => Shirts
    [category_nicename] => shirts
    [category_parent] => 25
)
cat ID 27  

27的WP_Term对象在哪里。我没有正确使用get_category或者我是否需要取消它或什么?

1 个答案:

答案 0 :(得分:1)

如果您查看get_category()的{​​{3}},就可以看到它使用了get_term()函数和分类“类别”。

不要使用get_category来获取您的学期子项,而是直接使用get_term()

$category_children = get_term_children( 25, 'product_cat' );
    foreach ($category_children as $category_id) {
        echo '<br> cat ID' . $category_id;

        echo '<pre>';
        print_r(get_term($category_id, 'product_cat'));
        echo '</pre>';
    }
}

如果没有分类“product_cat”,get_term($category_id)也可以。