Suporte » Temas » 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!

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • 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.

    Criador do tópico thiagonunes

    (@thiagonunes)

    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_query

    Referente 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.

    Criador do tópico thiagonunes

    (@thiagonunes)

    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!

    Myst1010

    (@myst1010)

    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.

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • O tópico ‘Chamar posts no category.php’ está fechado para novas respostas.