当前位置: 首页 > 知识库问答 >
问题:

从WordPress获取WooCommerce产品类别

戚京
2023-03-14

我试图通过WoodPress主题中的一个函数从WooCommerce获取产品类别

    function get_me_list_of($atts, $content = null)
    {   
        $args = array( 'post_type' => 'product', 'posts_per_page' => 10, 'product_cat' => $atts[0]);

        $loop = new WP_Query( $args );

        echo '<h1 class="upp">Style '.$atts[0].'</h1>';
        echo "<ul class='mylisting'>";
        while ( $loop->have_posts() ) : $loop->the_post(); 
        global $product; 

        echo '<li><a href="'.get_permalink().'">'.get_the_post_thumbnail($loop->post->ID, 'thumbnail').'</a></li>';
     echo '<li><a href="'.get_permalink().'">'.$loop->post->post_title.'</a></li>';

echo '<li><a href="">'.get_categories().'</a></li>';
        endwhile; 

        echo "</ul>";

        wp_reset_query(); 


    }

    ?>

上面的代码返回一些产品,但是产品类别。

当我包括echo'

如何更改此项以从WooCommerce获取产品类别?


共有3个答案

蓬高谊
2023-03-14

您还可以使用wp_list_categories();

wp_list_categories( array('taxonomy' => 'product_cat', 'title_li'  => '') );
米裕
2023-03-14

改善苏门。hassan95通过添加子类别的链接给出了答案。替换以下代码:

$sub_cats = get_categories( $args2 );
    if($sub_cats) {
        foreach($sub_cats as $sub_category) {
            echo  $sub_category->name ;
        }

    }

与:

$sub_cats = get_categories( $args2 );
            if($sub_cats) {
                foreach($sub_cats as $sub_category) {
                    echo  '<br/><a href="'. get_term_link($sub_category->slug, 'product_cat') .'">'. $sub_category->name .'</a>';
                }
            }

或者,如果您还希望为每个子类别设置计数器,请替换为:

$sub_cats = get_categories( $args2 );
            if($sub_cats) {
                foreach($sub_cats as $sub_category) {
                    echo  '<br/><a href="'. get_term_link($sub_category->slug, 'product_cat') .'">'. $sub_category->name .'</a>';
                    echo apply_filters( 'woocommerce_subcategory_count_html', ' <span class="cat-count">' . $sub_category->count . '</span>', $category );
                }
            }
钱欣然
2023-03-14
<?php

  $taxonomy     = 'product_cat';
  $orderby      = 'name';  
  $show_count   = 0;      // 1 for yes, 0 for no
  $pad_counts   = 0;      // 1 for yes, 0 for no
  $hierarchical = 1;      // 1 for yes, 0 for no  
  $title        = '';  
  $empty        = 0;

  $args = array(
         'taxonomy'     => $taxonomy,
         'orderby'      => $orderby,
         'show_count'   => $show_count,
         'pad_counts'   => $pad_counts,
         'hierarchical' => $hierarchical,
         'title_li'     => $title,
         'hide_empty'   => $empty
  );
 $all_categories = get_categories( $args );
 foreach ($all_categories as $cat) {
    if($cat->category_parent == 0) {
        $category_id = $cat->term_id;       
        echo '<br /><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>';

        $args2 = array(
                'taxonomy'     => $taxonomy,
                'child_of'     => 0,
                'parent'       => $category_id,
                'orderby'      => $orderby,
                'show_count'   => $show_count,
                'pad_counts'   => $pad_counts,
                'hierarchical' => $hierarchical,
                'title_li'     => $title,
                'hide_empty'   => $empty
        );
        $sub_cats = get_categories( $args2 );
        if($sub_cats) {
            foreach($sub_cats as $sub_category) {
                echo  $sub_category->name ;
            }   
        }
    }       
}
?>

这将按层次列出所有顶级类别及其下的子类别。如果只想显示顶级类别,请不要使用内部查询。你喜欢怎么做就怎么做。

 类似资料:
  • 对于我的WC产品页面,我需要向body标记添加一个类,以便执行一些自定义样式。这是我为这个创建的函数。。。 …但是我怎么才能拿到猫的身份证呢?

  • 当我进入产品编辑页面时,有一个选项卡“属性”。在那里我可以设置属性名及其值。 我假设这就是在Woocommerce上为产品添加自定义属性的方式。 但是如何在循环中得到这个值呢? 我看到人们使用,但它希望我传递分类法和另一个参数数组。分类学是什么?我没有手动添加。论点是什么?

  • 我目前正在处理一个WooCommerce主题,并试图在产品详细信息页面中添加一个侧栏。 我已经能够添加侧边栏(特别是这个:http://woocommerce.wp-a2z.org/oik_file/templatescontent-widget-product-php/) 现在,我正在想如何在当前选择的产品中添加一类“活动”,但似乎无法解决? 换言之,如果当前产品id等于侧栏中的产品id,我该如

  • 我尝试了许多方法,但我无法显示具有类别名称或id的产品

  • 我有服装产品。一种产品有多个类别,如“性别”(“男性”或“女性”)和“类型”(如“裤子”、“衬衫”等)。 我想列出所有类别和子类别的“类型”从产品中存在的“男子”类别。 "type"类别的ID: 1696 这段代码给了我1696下的所有类别,但我只想从也属于“男性”类别的产品中获得“类型”类别。 我明白了吗? 非常感谢你的帮助。

  • 我试图在变体下拉列表中显示产品变体价格。我试图改变默认的行为,当你在下拉列表中选择一个变量时,价格显示在div中。 问题是我找不到那个部门的变动价格。我搜索了所有的javascript,但找不到它 如果我使用: 我只得到所有选项的最小变化价格。我想知道每种变体的价格。有线索吗?