TransWikia.com

Listar subcategorias e posts de categoria/subcategoria atual

Stack Overflow em Português Asked by RFL on December 16, 2020

Em meu arquivo category.php tenho um layout onde possuo um menu lateral onde devem ser exibidos as subcategorias da categoria atual e uma <section></section> onde deve ser exibido os posts da atual categoria e subcategoria, para gerar o menu com as subcategorias da categoria atual eu fiz:

$categories =  get_categories('child_of='.get_the_category()[0]->term_id);

<nav class="panel">
    <?php foreach($categories as $category): ?>
        <a href="<?= get_category_link($category->term_id); ?>" class="panel-block">
            <?= $category->name; ?>
            <span class="icon"><i class="fa fa-angle-right fa-fw"></i></span>
        </a>                
    <?php endforeach; ?>
</nav>

Na section eu fiz:

<?php query_posts('posts_per_page=-1&cat='.get_the_category()[0]->term_id); ?>
    <?php if (have_posts()): while(have_posts()): the_post(); ?>
        <article class="column is-half">
            <div class="price-label">
                <div class="price-title">
                    <h1 class="title is-6">0001. <?php the_title(); ?></h1>
                    <h2 class="subtitle is-6">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis.</h2>
                </div>
                <div class="price-tag has-text-right">
                    <p><span class="size">P</span> <small>R$</small> 21.90</p>
                    <p><span class="size">M</span> <small>R$</small> 25.90</p>
                    <p><span class="size">G</span> <small>R$</small> 35.90</p>
                </div>
            </div>
        </article>
    <?php endwhile; endif; ?>

Eu não consigo fazer com que a section pegue sempre os posts da atual pagina sendo ela categoria ou subcategoria, eu só consigo pegar a categorial atual usando get_the_category()[0]->term_id, e não sei como pegar os posts da atual subcategoria, como posso fazer para que os posts seja exibidos de acordo com a atual categoria ou subcategoria?

One Answer

Você está reescrevendo a query dentro de section, por isso sempre vai mostrar os posts da primeira categoria.

Essa linha é desnecessária e está quebrando o template, pode deletar inteira:

<?php query_posts('posts_per_page=-1&cat='.get_the_category()[0]->term_id); ?>

Quando o template é carregado o WP já sabe qual categoria/subcategoria você quer então a parte cat=etc é desnecessária. Pra passar o parâmetro posts_per_page use o hook pre_get_posts no seu functions.php

add_action( 'pre_get_posts', 'retira_paginacao' );
function retira_paginacao( $query ) {
    if( is_admin() ) {
        return;
    }

    if ( is_category() ) {
        $query->set( 'posts_per_page', '-1' );
    } 
}

Answered by Ricardo Moraleida on December 16, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP