Categoria listando tudo, até que não é da categoria
-
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.
-
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.
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') ?> / <?php the_category(', ') ?> / <?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(); ?>
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 );
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í! 🙂Esse código seu eu vou colocar no lugar desse no meu código né?
$query_string = "paged=$paged"; $myposts = get_posts( $query_string );
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') ?> / <?php the_category(', ') ?> / <?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(); ?>
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') ?> / <?php the_category(', ') ?> / <?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(); ?>
- O tópico ‘Categoria listando tudo, até que não é da categoria’ está fechado para novas respostas.