WooCommerce: 获取当前产品分类

17

如何获取用户正在浏览的当前产品类别?

我尝试使用get_the_terms($post->ID, 'product_cat');,但这为我提供了页面上列出的每个产品的类别。我想要获取用户正在浏览的当前类别,即当前的产品列表页。

4个回答

24

这是一个简短的陈述:

$wp_query->get_queried_object()->term_id;
或者
$wp_query->get_queried_object()->name;
或者
...

1
很棒,这适用于产品和文章分类及术语。 - JMRC
3
使用print_r( $wp_query->get_queried_object() );可以查看所有可用的索引,而不仅仅是term_id。例如:echo $wp_query->get_queried_object()->name;。请注意,这是对代码的翻译,并且不包含解释或其他任何内容。 - aequalsb

14
要获取当前分类ID,您需要使用:
get_queried_object();

做这件事的正确方式是...

$cate = get_queried_object();
$cateID = $cate->term_id;
echo $cateID;

简直不敢相信我花了多少时间来寻找这个简单的答案。WooCommerce与普通的WordPress非常相似,直到它不是这样为止。 - Fred Rocha

11

试一试:

        global $post;
        $terms = get_the_terms( $post->ID, 'product_cat' );
        $nterms = get_the_terms( $post->ID, 'product_tag'  );
        foreach ($terms  as $term  ) {
            $product_cat_id = $term->term_id;
            $product_cat_name = $term->name;
            break;
        }

       echo $product_cat_name;

0

顺便说一下,您可以创建短代码 [show_product_category_id],用于显示产品类别ID。例如,在浏览产品类别时,它将显示该ID。您可以打开主题的functions.php并添加以下内容:

add_shortcode( 'show_product_category_id', 'show_product_category_id' );

function show_product_category_id() {
$cat = get_queried_object();
$catID = $cat->term_id;
echo $catID;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,