Obtenha categorias de filhos ao clicar na categoria principal

4

Não tenho certeza de como faço isso, configurei-o corretamente no back end, por exemplo, tenho uma categoria 'bares e pubs' e tenho três outras categorias 'x' 'y' 'z' e todos os pais são bares e pubs. Eu quero alcançar algo semelhante quando clico na categoria pai e mostrarei as categorias de filhos.

 <div class=" cus-fw-tabs">
      <ul>
      <li><a href="#tabs-1">All</a></li>
      <?php

      $args = array(
            'orderby'           => 'ASC',
            'order'             => 'ASC',
            'hide_empty'        => false,
            'exclude'           => array(),
            'exclude_tree'      => array(),
            'include'           => $term_arr,
            'number'            => '',
            'fields'            => 'all',
            'slug'              => '',
            'parent'            => '',
            'hierarchical'      => true,
            'child_of'          => 0,
            'childless'         => false,
            'get'               => '',
            'name__like'        => '',
            'description__like' => '',
            'pad_counts'        => false,
            'offset'            => '',
            'search'            => '',
            'cache_domain'      => 'core'
      );


      $terms = get_terms('category',$args);
    if(!empty($terms)) {
        $i=2;
        foreach($terms as $term){


        ?>
            <li class="tabs-<?php echo $term->term_id; ?>">
                          <a class="term-heading" href="#tabs-<?php echo $term->term_id; ?>"><?php echo $term->name; ?></a>
                        </li>
            <?php

            $i++;



        }

    }
            ?>


      </ul>
      </div>
    
por Jake 28.03.2017 / 11:10

1 resposta

0

Agarre a categoria pai $category = get_category_by_slug( 'category-name' );

Defina os argumentos que você precisa para sua consulta posterior, mas certifique-se de incluir o child_of arg

$args = array(
    'type'                     => 'post',
    'child_of'                 => $category->term_id,
    'hierarchical'             => 1,
    'taxonomy'                 => 'category',
);

Obtenha suas subcategorias com base nesses argumentos $child_categories = get_categories($args);

Você obterá um array associativo de volta, o qual poderá fazer um loop usando foreach ou qualquer função iterativa que desejar. Se você quiser uma solução mais detalhada para um problema específico em termos de um aplicativo front-end, sinta-se à vontade para atualizar sua pergunta ou postar um comentário.

    
por S. Coll 01.11.2017 / 18:31