web-dev-qa-db-fra.com

Comment diviser les catégories de sous-catégories avec des vignettes

C’est le code que j’utilise pour afficher toutes les catégories de produits avec des vignettes:

<?php
$cats = get_terms('product_cat', array(
    'hide_empty' => 0,
    'orderby' => 'name'
));
?>
<div class="container"> 
    <?php foreach($cats as $cat) : ?>           
        <?php   global $wp_query;
            if($cat->category_parent == 0) {
                $category_id = $cat->term_id;
                $thumbnail_id   = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
                $image = wp_get_attachment_url( $thumbnail_id );
                echo '<li><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>';
                echo '<img src="'.$image.'" width="45px" height="45px" />';
            }
        ?>      
    <?php endforeach; ?>
</div>

Quelqu'un pourrait-il m'aider à diviser les catégories de sous-catégories, tout en n'ayant que les vignettes, par exemple. comme ça:

  • catégorie (texte)

    • sous-catégorie (vignettes)
    • sous-catégorie (vignettes)
  • catégorie (texte)

    • sous-catégorie (vignettes)
    • sous-catégorie (vignettes)
1
Dime

J'ai trouvé comment faire ceci:

<?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 );

foreach ($all_categories as $cat) {  

    if($cat->category_parent == 0) {?>


<?php   $category_id = $cat->term_id;
        $thumbnail_id   = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
        $image = wp_get_attachment_url( $thumbnail_id );
        echo '<h3 style="font-size:16px">'. $cat->name .'</h3>';


        $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) {
        if($sub_cats->$sub_category == 0) {
            $thumbnail_id   = get_woocommerce_term_meta( $sub_category->term_id, 'thumbnail_id', true );
            $image = wp_get_attachment_url( $thumbnail_id );

            echo '<li style="list-style-type: none"><a href="'. get_term_link($sub_category->slug, 'product_cat') .'"><img src="'.$image.'" width="45px" height="45px" style="margin-right:8px; margin-top:8px; float:left; " /></a></li>';
            }
        }
        echo '</li>';
        }?>

<?php   } 
 } ?>
1
Dime