Suporte » Desenvolvendo com WordPress » Listar apenas as sub-categorias pertencentes a categoria pai

  • Resolvido ramonmorales

    (@ramonmorales)


    Olá, eu gostaria de listar apenas as sub-categorias pertencentes a categoria pai do post que está sendo visualizado no momento, o código que eu fiz funciona, porém ele acaba listando todas as sub-categorias.

    <?php
    
    $argsCategory = array(
        'orderby'                  => 'name',
        'order'                    => 'ASC',
        'parent'                   => 0,
        'hide_empty'               => 0,
        'exclude'                  => '1' 
    
    );?>
    <?php 
                $categories = get_categories($argsCategory);
                foreach($categories as $category) : 
                $term_id = $category->term_id; 
    
                $sub_categories =  get_categories('child_of='.$term_id.'&hide_empty=0');
    
                foreach($sub_categories as $category) : ?>
    
                <div class="cursos-accordion">
                    <button class="accordion"><?php echo  $category->name; ?></button>
                    <div class="panel">
    
                    <?php
                        $subcat_posts = get_posts('cat=' . $category->term_id);
    
                        //var_dump($subcat_posts);
                        foreach($subcat_posts as $subcat_post) :
                            $postID = $subcat_post->ID; ?>
                             <p><a href="<?php echo get_permalink($postID); ?>"><?php echo get_the_title($postID);?> </a></p>
    
                        <?php endforeach; ?>
    
                    </div>
                </div>
    
            <?php endforeach; ?>
    
            <?php endforeach; ?>

    A página que eu preciso de ajuda: [fazer login para ver o link]

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Boa tarde Ramon, tudo certo?

    Para pegar a categoria do post atual, você pode usar a função get_the_category(), essa função vai retornar uma Array de WP_Term com todas as categorias do post.

    A partir daí, você pode usar a função wp_list_filter() para filtrar apenas pelas categorias pai, mais ou menos assim:
    wp_list_filter( get_the_category(), array( 'parent' => 0 ) );

    Com isso você terá a listagem de todas as categorias pai do post atual, podendo buscar por todas suas sub-categorias.

    Deu certo mano, obrigado pela dica

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Você deve estar conectado para responder a este tópico.