我尝试根据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
或者我是否需要取消它或什么?
答案 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)
也可以。