• Bom dia pessoal,

    Tudo bom com vocês?

    Estou com um probleminha. Quando clico em um link de categoria ou tag, o WordPress mostra uma página listando todos os posts e não só daquela categoria/tag.

    Acredito que esteja faltando algum código que indique pro get_posts qual os posts que devem ser listados.

    Alguém imagina o que pode ser ou qual código usar?

    P.S: Tô usando o get_posts porque o query_posts estava dando conflito com o All in One SEO e mostrava o título da página errado.

    Obrigado pessoal.

Visualizando 9 respostas - 1 até 9 (de um total de 9)
  • NA verdade tem algo a mais por ai, o nome do arquivo já é o indicador para o WP saber qual query deve ser feita.

    Se em vez de mostrar o que deve no contexto (posts da tag, posts da categoria etc), então algo está modificando a query do contexto, antes que ela seja feita.

    Talvez algum arquivo inserido está com uma query que interfere em todo arquivo chamado.

    Criador do tópico Fernando

    (@baykal)

    Estou usando esse código abaixo, está correto assim?

    <?php
    /*
    Template Name: Pagina de Categorias
    */
    ?>
    <?php get_header(); ?>
    <div id="headerbottom">
        <div id="inheaderbottom">
            <div id="hbright">
                 <?php get_search_form( $echo ); ?>
            </div><div class="clear"></div>
        </div>
        </div>
    
        <div id="homecontent">
    
    <?php if ( function_exists('yoast_breadcrumb') ) {
    	yoast_breadcrumb('<p id="breadcrumbs">','</p>');
    } ?>
    
            <div id="blog">
    
    <h2>Postagens: <?php single_cat_title(); ?></h2>
    
    <div class="sep"></div>
    
    <?php
    if ( have_posts() ) :
    	while ( have_posts() ) : the_post();
    $query_string = "paged=$paged";
    $myposts = get_posts( $query_string );
    foreach( $myposts as $post ) :	setup_postdata($post);
    ?>
                <h4><?php the_title(); ?></h4>
                <em style="font-size:11px;">Por <a href="#"><?php the_author_posts_link(); ?></a> em <?php the_time('F jS') ?>   &nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;   <?php the_category(', ') ?>   &nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;   <?php comments_popup_link('0 comentrios', '1 comentrio', '% comentrios'); ?></em>
                <div class="space"></div>
    
                <?php the_excerpt(); ?><p><a href="<?php echo get_permalink() ?>" class="linkLeiaMais">Leia mais »</a></p><div class="clear"></div><div class="sep"></div>
    <?php endforeach;
    endwhile;
    else :
    	echo wpautop( 'Desculpe, nenhum post corresponde aos seus critérios.' );
    endif;
    ?>
    
                    <div class="navigation">
                        <div class="alignright"><?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?></div>
                        <!-- <div class="alignleft"><?php posts_nav_link( '$sep', $prelabel, $nextlabel ); ?></div> -->
            </div>
    
            </div>
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    Criador do tópico Fernando

    (@baykal)

    Não consegui resolver o problema ainda. Alguém tem alguma luz ae? Obrigado desde já pessoal.

    baykal, tente isso:

    $cat = single_cat_title('',false); // retorna o nome da Categoria
    $cat_query = get_term_by('name',$cat,'category'); // retorna o objeto da Categoria
    $query_string = array( "paged" => $paged, "category" = $cat_query->ID; // limita a query pelo ID do objeto encontrado
    $myposts = get_posts( $query_string );
    Criador do tópico Fernando

    (@baykal)

    Ricardo…

    Ficou faltando fechar alguma ) ou aspas aí no $query_string ?

    $cat = single_cat_title('',false); // retorna o nome da Categoria
    $cat_query = get_term_by('name',$cat,'category'); // retorna o objeto da Categoria
    $query_string = array( "paged" => $paged, "category" => $cat_query->ID; // limita a query pelo ID do objeto encontrado
    $myposts = get_posts( $query_string );

    tinha faltado um >, mals aí! 🙂

    Criador do tópico Fernando

    (@baykal)

    Esse código seu eu vou colocar no lugar desse no meu código né?

    $query_string = "paged=$paged";
    $myposts = get_posts( $query_string );
    Criador do tópico Fernando

    (@baykal)

    Cara, tentei aqui mas continua repetindo os posts e trazendo posts de categoria diferente.

    O código ficaria assim mesmo?

    <?php
    /*
    Template Name: Pagina de Categorias
    */
    ?>
    <?php get_header(); ?>
    <div id="headerbottom">
        <div id="inheaderbottom">
            <div id="hbright">
                 <?php get_search_form( $echo ); ?>
            </div><div class="clear"></div>
        </div>
        </div>
    
        <div id="homecontent">
    
    <?php if ( function_exists('yoast_breadcrumb') ) {
    	yoast_breadcrumb('<p id="breadcrumbs">','</p>');
    } ?>
    
            <div id="blog">
    
    <h2>Postagens: <?php single_cat_title(); ?></h2>
    
    <div class="sep"></div>
    
    <?php
    if ( have_posts() ) :
    	while ( have_posts() ) : the_post();
    
    $cat = single_cat_title('',false); // retorna o nome da Categoria
    $cat_query = get_term_by('name',$cat,'category'); // retorna o objeto da Categoria
    $query_string = array( "paged" => $paged, "category" => $cat_query->ID); // limita a query pelo ID do objeto encontrado
    $myposts = get_posts( $query_string );
    
    foreach( $myposts as $post ) :	setup_postdata($post);
    ?>
                <h4><?php the_title(); ?></h4>
                <em style="font-size:11px;">Por <a href="#"><?php the_author_posts_link(); ?></a> em <?php the_time('F jS') ?>   &nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;   <?php the_category(', ') ?>   &nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;   <?php comments_popup_link('0 comentrios', '1 comentrio', '% comentrios'); ?></em>
                <div class="space"></div>
    
                <?php the_excerpt(); ?><p><a href="<?php echo get_permalink() ?>" class="linkLeiaMais">Leia mais »</a></p><div class="clear"></div><div class="sep"></div>
    <?php endforeach;
    endwhile;
    else :
    	echo wpautop( 'Desculpe, nenhum post corresponde aos seus critérios.' );
    endif;
    ?>
    
                    <div class="navigation">
                        <div class="alignright"><?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?></div>
                        <!-- <div class="alignleft"><?php posts_nav_link( '$sep', $prelabel, $nextlabel ); ?></div> -->
            </div>
    
            </div>
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    Criador do tópico Fernando

    (@baykal)

    Pessoal…

    Eu tirei toda essa confusão de códigos e coloquei apenas isso abaixo e ficou certinho agora.

    Obrigado Ricardo e Diana pela ajuda. 😉

    <?php
    /*
    Template Name: Pagina de Categorias
    */
    ?>
    <?php get_header(); ?>
    <div id="headerbottom">
        <div id="inheaderbottom">
            <div id="hbright">
                 <?php get_search_form( $echo ); ?>
            </div><div class="clear"></div>
        </div>
        </div>
    
        <div id="homecontent">
    
    <?php if ( function_exists('yoast_breadcrumb') ) {
    	yoast_breadcrumb('<p id="breadcrumbs">','</p>');
    } ?>
    
            <div id="blog">
    
    <h2>Postagens: <?php single_cat_title(); ?></h2>
    
    <div class="sep"></div>
    
    <?php while (have_posts()) : the_post(); ?>
    
                <h4><?php the_title(); ?></h4>
                <em style="font-size:11px;">Por <a href="#"><?php the_author_posts_link(); ?></a> em <?php the_time('F jS') ?>   &nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;   <?php the_category(', ') ?>   &nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;   <?php comments_popup_link('0 comentários', '1 comentário', '% comentários'); ?></em>
                <div class="space"></div>
    
                <?php the_excerpt(); ?><p><a href="<?php echo get_permalink() ?>" class="linkLeiaMais">Leia mais »</a></p><div class="clear"></div><div class="sep"></div>
    
    <?php endwhile; ?>
    
                    <div class="navigation">
                        <div class="alignright"><?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?></div>
                        <!-- <div class="alignleft"><?php posts_nav_link( '$sep', $prelabel, $nextlabel ); ?></div> -->
            </div>
    
            </div>
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
Visualizando 9 respostas - 1 até 9 (de um total de 9)
  • O tópico ‘Categoria listando tudo, até que não é da categoria’ está fechado para novas respostas.