如何在woocommerce中显示子类别(子子类别)的子类别

时间:2014-09-17 10:27:02

标签: php wordpress woocommerce

我试图通过我的wordpress主题中的函数从woocommerce获取产品类别,我已经做到了:

<?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
    );
    ?>
    <?php $all_categories = get_categories( $args );
    //print_r($all_categories);
    foreach ($all_categories as $cat) {
        //print_r($cat);
        if($cat->category_parent == 0) {
            $category_id = $cat->term_id;

    ?>      

    <?php       

            echo '<br /><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>'; ?>


            <?php
            $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 ;
                }

            } ?>



        <?php }     
    }
    ?>

这将按层次列出其下的所有顶级类别和子类别,但我有子类别(子子类别)的子类别,因此我如何列出这些子子类别。

1 个答案:

答案 0 :(得分:1)

最简单的方法是通过在function.php中添加以下代码并拖放WooCommerce内置的“WooCommerce Product Categories”小部件来制作小部件块。它有一些选项来显示类别/子类别和子子类别.u

function arphabet_widgets_init() {

    register_sidebar( array(
    'name' => 'Widget Name',
    'id' => 'sidebar-1',
    'before_widget' => '<div class="your-class">',
    'after_widget' => '</div>',
) );

}    

现在创建一个侧边栏文件sidebar-1.php并在该文件中添加以下代码:

<?php if ( ! dynamic_sidebar( 'sidebar-1' ) ) : else : ?>    
<?php endif; ?>    

通过上传这些文件,您将在wordpress小部件页面上看到小部件块选项。包括您想要显示类别的sidebar-1.php文件,并从wordpress小部件中拖放*“WooCommerce Product Categories”**小部件。

感谢。