0

I have some code that displays the children categories on the screen but some parent categories do not have children if that is the case I don't want the section to be shown. does anybody know a way to do this? here is my current code to show the categories:

<div class="list-group products box">
                        <h4>Product Range</h4>
                        <?php $terms = get_the_terms( $post->ID, 'product_cat' );
                        foreach ( $terms as $term ){
                        $category_name = $term->name;
                        $parent_category_id = $term->term_id;

                        $categories=get_categories(array( 'parent' => $category_id ));
                    $children = get_terms( 'product_cat', array(
                                'parent'    => $parent_category_id,
                                'hide_empty' => true
                    ) );
                  foreach( $children as $subcat ){
                        ?>
                        <a href="<?php echo get_term_link( $subcat->slug, 'product_cat' ); ?>" class="list-group-item"><?php echo $subcat->name; ?></a>
                        <?php } } ?>
                </div>

When a parent as no children it just shows the H4 Product Range

2
  • means you do not want to show ` <h4>Product Range</h4>` if parent has no children? Commented Oct 24, 2018 at 9:33
  • bascially i want this section to be disabled so i cant see the div
    – Jenova1628
    Commented Oct 24, 2018 at 14:06

1 Answer 1

2

Try below code

<?php
  $terms = get_the_terms($post->ID, 'product_cat');
  foreach ($terms as $term) {
    $category_name = $term->name;
    $parent_category_id = $term->term_id;

    $categories = get_categories(array('parent' => $category_id));
    $children = get_terms('product_cat', array(
        'parent' => $parent_category_id,
        'hide_empty' => true
    ));
    if (!empty($children)) {
        echo ' <div class="list-group products box">
                                  <h4>Product Range</h4>';
        foreach ($children as $subcat) {
            ?>
            <a href="<?php echo get_term_link($subcat->slug, 'product_cat'); ?>" class="list-group-item"><?php echo $subcat->name; ?></a>
            <?php
        }
        echo "</div>";
    }
  }
 ?>

Hope this helps

2
  • Replaced with current code and works wonders thank you
    – Jenova1628
    Commented Oct 25, 2018 at 7:50
  • Glad to hear that it helped you. Commented Oct 25, 2018 at 9:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.