Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberson Ferreira

Não mostra post mais recente

Recommended Posts

Pessoal, não achei outra thread sobre esse assunto, então resolvi criar uma. Já quebrei a cabeça e não achei o problema (claro, não conheço muito).

 

Seguinte: meu blog não mostra o post mais recente da categoria.

 

Ou seja, se eu tenho uma categoria chamada "adm" e existem 3 posts ligados a ela, somente os 2 mais antigos são apresentados quando eu clico na categoria. Se eu só tiver 1 post na categoria, ele não aparece quando clico na categoria.

 

É como se ele fizesse assim quando clico em uma categoria: "Mostrar todos os posts da categoria, menos o mais recente". Já viram isso?

 

Não sei se isso importa, mas estou usando um tema que mostra as categorias na lateral esquerda da seguinte maneira:

 

<?php wp_list_categories('title_li=0&categorize=0&number=NULL'); ?>

 

Alguma idéia de como fazer para que, ao clicar em uma categoria, TODOS os posts dela sejam apresentados?

 

Desde já, muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o código que você postou lista as categorias e não posts das categorias...

 

Para pegar posts de uma categoria você usa

query_posts( $args );

 

Exemplo:


$page_cat = get_category_by_slug('events');

$args = array(
"post_type"=>"post",
"post_status"=>"published",
"order"=>"DESC",
"posts_per_page"=>4,
"cat"=>$page_cat->term_id
);

query_posts( $args );

 

Ai é só usar o loop natural do wordpress:

if ( have_posts() ) : while ( have_posts() ) : the_post();
// Content
endwhile; endif;

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Thiago, muito obrigado pela resposta.

 

Mas seguinte, o comando que postei anteriormente realmente só serve pra listar as categorias. Quando clico nas categorias já aprecem os posts ligados a elas, ou seja, em algum lugar já tem código pra isso.

 

O problema é que não aparecem TODOS os posts da categoria que cliquei. O post mais recente (o última cadastrado) não aparece.

 

Ou seja, os comandos que você mencionou já devem existir em algum lugar, mas onde? Em que arquivo?

 

Se eu achar, fica mais fácil de identificar o problema ou, se eu não conseguir, pelo menos posso postá-lo aqui.

 

Mais uma vez, obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta se você ta usando um tema padrão você deve ir no category.php que fica dentro do seu tema.

 

Lá tem o CSS e o HTML junto com o PHP relacionado a listagem de posts por categoria.

 

Se não foi alterado deveria ser algo assim:

<?php
/**
* The template for displaying Category Archive pages.
*
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.0
*/

get_header(); ?>

	<div id="container">
		<div id="content" role="main">

			<h1 class="page-title"><?php
				printf( __( 'Category Archives: %s', 'twentyten' ), '<span>' . single_cat_title( '', false ) . '</span>' );
			?></h1>
			<?php
				$category_description = category_description();
				if ( ! empty( $category_description ) )
					echo '<div class="archive-meta">' . $category_description . '</div>';

			/* Run the loop for the category page to output the posts.
			 * If you want to overload this in a child theme then include a file
			 * called loop-category.php and that will be used instead.
			 */
			get_template_part( 'loop', 'category' );
			?>

		</div><!-- #content -->
	</div><!-- #container -->

<?php get_footer(); ?>

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi Thiago. Mas como é uma tema que baixei (idream), não existe o arquivo category.php dentro da pasta. Olha o conteúdo da pasta do tema:

 

Sub-pastas:

css

images

js

 

Arquivos:

404.php

archive.php

bottombar.php

comments.php

copyright.php

footer.php

functions.php

header.php

index.php

page.php

screenshot.png

search.php

searchform.php

sidebar.php

single.php

style.css

 

Algum desses arquivos lhe parece ser o que possui o conteúdo de apresentar os posts quando clica-se no link das categorias?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O archive.php pode esta trabalhando com essa função. Cara basicamente o que você quer é puxa os últimos posts de uma categoria não é? É só fazer um simples loop para puxar os posts dessa sua categoria..

 

<?php $feature_post = get_posts('cat=ID-DA-CATEGORIA&showposts=QUANTIDADE-DE-POST-QUE-SERA-MOSTRADO 3'); ?>           
       <?php if( $feature_post ) : ?>             
       <div id="post">            
         <?php foreach( $feature_post as $post ) : setup_postdata( $post ); ?>            
         <?php $feature_post_id = $post->ID; ?>  <h1>            
           <a title="<?php the_title();?>" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title();?></a></h1>            
         <div class="resumo-do-post">                          
           <p><?php echo substr(get_the_excerpt(), 0, 200); ?>. . . <a href="<?php the_permalink() ?>"><?php _e( 'Leia mais!', 'wpbx' ) ?></a></p>               
         </div>            
         <?php endforeach; ?>          
       </div>             
       <?php endif; ?> 

O Loop ai está completo, basta elimitar partes que acha desnecessário, como resumo do post... Podes acrescentar tbm thumbnails, e trabalhar com query_posts mais diretas como o Thiago citou http://www.andersonnarciso.com/query_posts-formas-de-utilizar/ Trabalhando com as query_posts qualquer página pode puxar a categoria que você quizer, porem a correta mesmo é a category.php, você pode pegar tudo que tem dentro de um arquivo single.php copiar e colar dentro de um arquivo category.php e jogar seu loop, fazer as modificações necessarias, paginação e etc. Vai funcionar igual

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson, obrigado pela ajuda. Já existe a rotina de mostrar os posts das categorias, mas confirmo mencionado, o post mais recente de cada categoria não aparece quando clicamos na categoria.

 

É como se o While não fosse até o último post da categoria, entende? É como se o While começasse do post mais antigo da categoria indo somente até o anterior ao mais recente.

 

Em relação ao archive.php, não sei se é ele o responsável por isso. Veja o seu conteúdo (será que é ele?):

 

<?php get_header(); ?>

 

<!-- main column Starts here -->

<div id="maincol">

 

<?php if (have_posts()) : ?>

 

<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>

 

<?php /* If this is a category archive */ if (is_category()) { ?>

<h2 class="arpageTitle"><?php single_cat_title(); ?></h2>

<!--

<?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>

<h2 class="arpageTitle">Etiqueta: <?php single_tag_title(); ?></h2>

-->

<?php /* If this is a daily archive */ } elseif (is_day()) { ?>

<h2 class="arpageTitle">Arquivo de <?php the_time('d F Y'); ?></h2>

<?php /* If this is a monthly archive */ } elseif (is_month()) { ?>

<h2 class="arpageTitle">Arquivo de <?php the_time('F Y'); ?></h2>

<?php /* If this is a yearly archive */ } elseif (is_year()) { ?>

<h2 class="arpageTitle">Arquivo de <?php the_time('Y'); ?></h2>

<?php /* If this is an author archive */ } elseif (is_author()) { ?>

<h2 class="arpageTitle">Arquivo do Autor</h2>

<?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>

<h2 class="arpageTitle">Arquivo do Blog</h2>

<?php } ?>

 

<?php while (have_posts()) : the_post(); ?>

 

<div class="postwrap">

 

<div class="postmeta2">

<div class="meta2inner">

<div class="pday"><?php the_time('j'); ?></div>

<div class="pmonth"><?php the_time('M/y'); ?></div>

</div>

</div>

 

<h2 class="posttitle"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>

<div class="postmeta"> Categoria: <?php the_category(', '); ?></div>

<div class="clr16"></div>

<div class="postcontent"><?php the_content('(Ler o restante...)'); ?></div>

 

<div class="roubcornrcontent">

<span class="posttags"><?php $tag = get_the_tags(); if (! $tag) {echo "Sem Etiquetas";} else {the_tags('', ', ', '');} ?></span>

<span class="postcomments"><?php comments_popup_link('Sem Comentários', '1 Comentário', '% Comentários'); ?></span>

<span class="postmore"><a href="<?php the_permalink() ?>">mais...</a></span>

<div class="clr"></div>

</div>

 

 

<div class="cleared"></div>

</div> <!-- Closes topPost --><br/>

 

<?php endwhile; ?>

 

<?php else : ?>

 

<div class="topPost">

<h2 class="topTitle"><a href="<?php the_permalink() ?>">Nada Encontrado</a></h2>

<div class="topContent"><p>Lamentamos, mas não foram encontrados posts. Utilize a <a href="#searchform">pesquisa</a>...</p></div>

</div> <!-- Closes topPost -->

 

<?php endif; ?>

 

<div id="nextprevious">

<div class="alignleft"><?php next_posts_link('« Seguinte') ?></div>

<div class="alignright"><?php previous_posts_link('Anterior »') ?></div>

<div class="cleared"></div>

</div>

</div>

 

 

<!-- right column Starts here -->

<div id="rightcol">

<?php get_sidebar(); ?>

</div>

<div class="clr"></div>

 

<?php get_footer(); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.