Roberson Ferreira 0 Denunciar post Postado Julho 6, 2011 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 6, 2011 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
Roberson Ferreira 0 Denunciar post Postado Julho 6, 2011 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 6, 2011 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
Roberson Ferreira 0 Denunciar post Postado Julho 6, 2011 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
Anderson Narciso 3 Denunciar post Postado Julho 6, 2011 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
Roberson Ferreira 0 Denunciar post Postado Julho 6, 2011 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