我的商店页面上有一个这样的网址:/product-category/footwear/nike-sb/
,但是当我在这里运行此代码时:
$cat = $wp_query->get_queried_object();
它返回nike-sb
的对象,我需要始终返回footwear
的对象。如果我在浏览器中访问:/product-category/footwear/
它会返回footwear
的对象就好了。但是,如果我们处于鞋类,一级,类别,如何在任何时候都获得鞋类物品?
因此,例如,如果我们位于网址/product-category/shirts/hanes/
,则应该返回shirts
对象。
使用WooCommerce,但无法在网址中的product-category
之后直接控制该类别。似乎只返回最新的类别组件。
怎么做?
答案 0 :(得分:0)
这是我必须解决的问题,我发表了here
有一点需要注意:我确实发现了一个我没有时间解决的错误,而且当你传递的产品ID已经达到顶级类别时就会出现这个错误。无论出于何种原因,它都无法正确回归。
这是一个辅助函数,应该被其他调用自己的动作/钩子的函数使用。
function get_product_top_level_category ( $product_id ) {
$product_terms = get_the_terms ( $product_id['product_id'], 'product_cat' );
$product_category = $product_terms[0]->parent;
$product_category_term = get_term ( $product_category, 'product_cat' );
$product_category_parent = $product_category_term->parent;
$product_top_category = $product_category_term->term_id;
while ( $product_category_parent != 0 ) {
$product_category_term = get_term ( $product_category_parent, 'product_cat' );
$product_category_parent = $product_category_term->parent;
$product_top_category = $product_category_term->term_id;
}
return $product_top_category;
}