Woocommerce - 如何编程循环以查找类别的子类别并显示类别标题及其中的产品

时间:2014-09-11 16:14:57

标签: php wordpress loops woocommerce

您好我希望在Woocommerce中创建类别模板,根据它们适用的类别进行搜索,以查找该类别的子类别,并在其下方的子类别中显示子类别的标题

我已经创建了类别模板,并且暂时在短代码中进行硬编码以显示子类别及其产品,但是这不允许客户创建新的产品子类别并将产品分配给它而不需要我进一步干预,有人可以帮忙吗?

相关网站的网址以及在类别模板中使用硬编码短代码的网页是:

http://www.globalleisurefurniture.co.uk/products/tablestopsbases/table-bases/

基本上我希望能够使用某种循环创建此页面,而不是硬编码的短代码...

如有任何问题,请随时提出任何问题并提出感谢!

1 个答案:

答案 0 :(得分:2)

我基本上做了同样的事情,但没有循环并展示产品。要在我的档案页面上获取父类别的子项列表,我添加了:

function woocommerce_subcats_from_parentcat_by_ID($parent_cat_id, $current_cat_name = ''){

                               $args = array(
                                  'hierarchical' => 1,
                                  'show_option_none' => '',
                                  'hide_empty' => 0,
                                  'parent' => $parent_cat_id,
                                  'taxonomy' => 'product_cat'
                               );

                                $subcats = get_categories($args);

                                echo '<ul class="wooc_sclist">';

                              //first link will be "view all for parent cat"
                              $parent_info = get_term_by('id', $parent_cat_id, 'product_cat');
                              $parent_permalink = get_term_link($parent_info, 'product_cat');

                              echo '<li>';
                              echo '<a href="'.$parent_permalink.'">View All ';
                              echo $parent_info->name;
                              echo '</a>';
                              echo '</li>';

                              foreach ($subcats as $sc) {

                                    print_r($sc); // this will give you the sub cat info for each sub category, and you should be able to use the info in the array to build your loop here

                                    $link = get_term_link( $sc->slug, $sc->taxonomy );

                                 echo '<li class="';

                                 if($current_cat_name == $sc->name){
                                    echo 'active ';
                                 } 

                                 echo '" ><a href="'. $link .'">'.$sc->name.'</a></li>';

                              }//foreach

                                echo '</ul>';

                            } //function

                            if($parent_cat_id != 0){
                                woocommerce_subcats_from_parentcat_by_ID($parent_cat_id, $current_category);
                            }
                            else{
                                woocommerce_subcats_from_parentcat_by_ID($cur_cat_id, $current_category);
                            }

您应该能够使用我在上面的代码中添加的print_r($ sc)来获取该子类别所需的信息以构建您的循环。