Chamar posts no category.php
-
Olá pessoal,
Pretendo chamar alguns posts no arquivo category.php, e para a página inicial inserir ou chamar o conteúdo no próprio arquivo category.php. Achei o código a baixo em um artigo na net:
<?php if (is_category('ID OU SLUG DA PRIMEIRA CATEGORIA')) { ?> Resultado da primeira categoria escolhida! <?php } elseif (is_category('ID OU SLUG DA SEGUNDA CATEGORIA')) { ?> Resultado da segunda categoria escolhida! <?php } else { ?> Esta condicional apresenta o resultado genérico que não se encaixa nos dois primeiros! <?php } ?>
Gostaria de saber qual é o código que eu devo inserir no lugar dos textos “Resultado da segunda categoria escolhida!” e “Esta condicional apresenta o resultado genérico que não se encaixa nos dois primeiros!”
Agradeço quem puder ajudar!
-
Olá Thiago, vou deixar aqui um exemplo para ver se ajuda, mas será necessário que você tenha algum conhecimento das funções básicas do WP que fazem apresentar o que você deseja como, título, conteúdo do post, imagens e etc…
<?php if (is_category( '5' )) { ?> <div class="posts-category-5"> <?php the_title( '<h2>', '</h2>' ); ?> <?php the_content(); ?> </div> <?php } elseif (is_category( '2' )) { ?> <div class="posts-category-2"> <?php the_title( '<h2>', '</h2>' ); ?> <?php the_content(); ?> </div> <?php } else { ?> <div class="posts-category"> <?php the_title( '<h2>', '</h2>' ); ?> <?php the_content(); ?> </div> <?php } ?>
Espero que com este exemplo tenha ficado mais claro, lembrando que os números IDs que usei devem ser trocados pelos IDs de suas categorias.
Myst1010, primeiramente obrigado!
Funcionou, mas gostaria de tirar algumas dúvidas. Está certa a forma que eu chamei o conteúdo do post na condicional a baixo?
<?php } elseif (is_category( '12' )) { ?> <?php get_header(); ?> <div class="posts-category-2"> <?php the_title( '<h2>', '</h2>' ); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <h1><?php the_title(); ?></h1> <p><?php the_time('d/F/Y G:i') ?></p> <div><?php the_content(); ?></div> <?php endwhile; endif; ?> </div>
Como eu faço para chamar a index.php no else?
Está relativamente correto, mas não se coloca o
<?php get_header(); ?>
dentro da condicional, a não ser que você estivesse fazendo uma personalização especial para ele.E se lhe entendi bem, você está fazendo esta personalização errada.
Para adicionar um grupo de posts na página categoria você deve fazer um WP_Query antes do loop normal do arquivo category.php, assim você terá os posts normais desta página e os extras que você deseja adicionar.
Não se chama a index nesta página, isso que você deseja fazer é feito com o loop normal do arquivo category.php
para saber mais sobre WP-Query veja
http://codex.wordpress.org/wp_queryReferente a sua página inicial.
Você também não deve chamar o conteúdo da página de categoria, você deve fazer um WP_Query ou um query_posts na index para obter os posts que você quer mostrar.Olá Myst1010,
Estou “upando” esse tópico novamente, pois tenho algumas dúvidas. Pretendo chamar três categorias de post na home, e para isso pretendo criar múltiplos loops através da função WP_Query.
Esse assunto foi abordado por você mesmo nesse tópico: http://migre.me/b3Lea, e nele você orientou criar uma página chamada category-acao.php onde açao deve ser trocado pelo slug da sua categoria. Fiz isso criando um arquivo chamado category-destaques.php, e nele copiei toda a estrutura do loop que estava na index ficando dessa forma: https://gist.github.com/3852684
Antes de descobrir a necessidade de criar multiplos loops, o código acima estava mostrando os posts da categoria destaques normalmente na home, as minhas dúvidas são:
– Que código eu devo inserir na index.php para chamar as três categorias que serão category-nome-da-categoria?
– Nesse caso é necessário incluir algum código adicional no arquivo category.php?Agradeço desde já qualquer ajuda!
Thiago na página de categoria não é preciso um loop personalizado, basta copiar o arquivo category.php e renomear ele para category-destaque.php, caso o nome da sua categoria seja destaque.
Mas isso só é necessário caso você queira dar uma personalização diferente para os posts da categoria destaque quando visto na página de categorias, caso não esteja planejando uma personalização diferente nem é necessário, pois o category.php se encarrega do trabalho de mostrar os posts.
Para sua index ter 3 loops, cada um com uma categoria, basta copiar o código do primeiro loop e alterar somente a categoria nos demais como você fez com seu WP_Query
Se entendi direito acho que é isso.
- O tópico ‘Chamar posts no category.php’ está fechado para novas respostas.