【问题标题】:Woocommerce: Get current product categoryWoocommerce:获取当前产品类别
【发布时间】:2025-11-22 08:40:02
【问题描述】:

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

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

【问题讨论】:

    标签: woocommerce


    【解决方案1】:

    这是一个单行:

    $wp_query->get_queried_object()->term_id;
    

    $wp_query->get_queried_object()->name;
    

    ...
    

    【讨论】:

    • 太好了,这适用于产品和帖子类别和条款。
    • print_r( $wp_query->get_queried_object() ); 查看所有可用的索引——不仅仅是term_id。例如:echo $wp_query->get_queried_object()->name;
    【解决方案2】:

    获取当前类别 ID。 你必须使用

    get_queried_object();
    

    这样做的正确方法是..

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

    【讨论】:

      【解决方案3】:

      试试这个:

              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;
      

      【讨论】:

        【解决方案4】:

        顺便说一句,您可以创建简码 [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;
        }
        

        【讨论】:

          最近更新 更多