Woocommerce如何获得First Level产品类别?

时间:2014-08-03 20:19:50

标签: php wordpress woocommerce

我的商店页面上有一个这样的网址:/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之后直接控制该类别。似乎只返回最新的类别组件。

怎么做?

1 个答案:

答案 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;

        }