Sidebar diferente no Single post
-
Boa noite!
Eu consegui criar paginas, e post dividido em categorias.
Ou seja:
Pagina 1 => Categoria 1 => Sidebar 1
Pagina 2 => Categoria 2 => Sidebar 2
Pagina 3 => Categoria 3 => Sidebar 3O problema é quando se clica para ler o post, seja qual for a categoria, ele exibe a sidebar da pagina 1
Fica assim:
Pagina 2=> Post de Categoria 2 aberto (single post) => Sidebar 1
Pagina 3=> Post de Categoria 3 aberto (single post) => Sidebar 1Imagino que abra a Sidebar 1 pois ela é a minha “Posts Page”.
Mas, existe alguma maneira de quando o post estiver aberto ele abra a sidebar correta, referente a sua categoria?
Desde já obrigada…
-
VC tem que pesquisar por conditional tags:
http://codex.wordpress.org/Conditional_TagsNo seu arquivo single.php, antes de carregar a sidebar, vc testa para ver em que categoria está e, dependendo do resultado, vc carrega a sidebar correta.
Qualquer coisa poste aqui o código do single.php.
Então… eu procurei lá, mas não achei nada parecido que se encaixasse no meu problema…
Você pode me ajudar?
Essa é a minha single:
<?php get_header(); ?> <?php get_sidebar(); ?> <!-- Content --> <div id="content"> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <!-- Post --> <div class="post" id="post-<?php the_ID(); ?>"> <div class="post-title"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <div class="post-title-info"> Por: <?php the_author() ?> em <?php the_time('d/m/Y') ?><br /> </div> <div class="clear"></div> </div> <div class="post-entry"> <?php the_content('Leia mais...'); ?> <?php edit_post_link('Editar este post.','',''); ?> <?php comments_template(); ?> </div> </div> <!-- /Post --> <?php endwhile; ?> <?php else : ?> <!-- Post --> <div class="post"> <div class="post-title"> <h2>Not Found</h2> </div> <div class="post-entry"> <p>Sorry, but you are looking for something that isn't here.</p> </div> </div> <!-- /Post --> <?php endif; ?> <div class="clear"></div> </div> <!-- /Content --> <?php include (TEMPLATEPATH . '/sidebar-right.php'); ?> <?php get_footer(); ?>
A minha pagina é:
<?php /* Template Name: Membros do Staff */ ?> <?php get_header(); ?> <?php if (is_front_page()){include ('sidebar.php'); } if (is_page('nossa-historia')) {include ('sidebar.php'); } if (is_page('nosso-estatuto')) {include ('sidebar.php'); } if (is_home()) {include ('sidebar.php'); } if (is_home()) {query_posts('cat=-3, -6, -7, -8, -9'); } if (is_page('membros')) {include ('sidebar3.php'); } if (is_page('membros-do-staff')) {include ('sidebar3.php'); } if (is_page('membros-oficiais')) {include ('sidebar3.php'); } if (is_page('membros-em-reserva')) {include ('sidebar3.php'); } if (is_page('novos-membros')) {include ('sidebar3.php'); } if (is_page('membros-em-aprovacao')) {include ('sidebar3.php'); } if (is_page('eventos')) {include ('sidebar4.php'); } if (is_page('standards')) {include ('sidebar5.php'); } if (is_page('participe')) {include ('sidebar6.php'); } if (is_page('contato')) {include ('sidebar7.php'); } ?> <?php global $more; // Declare global $more (before the loop). $more = 0; // Set (inside the loop) to display all content, including text below more. the_content(); ?> <!-- Content --> <div id="content"> <?php query_posts('category_name=Membros do Staff&order=ASC');?> <?php if (have_posts()): ?> <?php while (have_posts()) : the_post(); ?> <!-- Post --> <div class="post" id="post-<?php the_ID(); ?>"> <div class="post-title"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <div class="post-title-info"> </div> <div class="clear"></div> </div> <div class="post-entry"> <?php the_content('Leia mais...'); ?> </div> <div class="post-info"> </div> </div> <!-- /Post --> <?php endwhile; ?> <!-- Navigation --> <div class="navigation"> <div class="navigation-previous"><?php next_posts_link('« Anterior') ?></div> <div class="navigation-next"><?php previous_posts_link('Próxima »') ?></div> </div> <!-- /Navigation --> <?php else : ?> <!-- Post --> <div class="post"> <div class="post-title"> <h2>Not Found</h2> </div> <div class="post-entry"> <p>Sorry, but you are looking for something that isn't here.</p> </div> </div> <!-- /Post --> <?php endif; ?> <div class="clear"></div> </div> <!-- /Content --> <?php include (TEMPLATEPATH . '/sidebar-right.php'); ?> <?php get_footer(); ?>
Aí qdo clica no post… ele vai pra home.
Obrigada!
O mais difícil vc já fez, que foi entender e pensar o esquema das sidebars:
<?php if (is_front_page()){include ('sidebar.php'); } if (is_page('nossa-historia')) {include ('sidebar.php'); } if (is_page('nosso-estatuto')) {include ('sidebar.php'); } if (is_home()) {include ('sidebar.php'); } if (is_home()) {query_posts('cat=-3, -6, -7, -8, -9'); } if (is_page('membros')) {include ('sidebar3.php'); } if (is_page('membros-do-staff')) {include ('sidebar3.php'); } if (is_page('membros-oficiais')) {include ('sidebar3.php'); } if (is_page('membros-em-reserva')) {include ('sidebar3.php'); } if (is_page('novos-membros')) {include ('sidebar3.php'); } if (is_page('membros-em-aprovacao')) {include ('sidebar3.php'); } if (is_page('eventos')) {include ('sidebar4.php'); } if (is_page('standards')) {include ('sidebar5.php'); } if (is_page('participe')) {include ('sidebar6.php'); } if (is_page('contato')) {include ('sidebar7.php'); }
Agora vc deve fazer a mesma coisa, mas ao invés de is_page você vai usar in_category (http://codex.wordpress.org/Function_Reference/in_category).
Na sua single, troque o
<?php get_sidebar(); ?>
pela nova versão do código acima utilizando a in_category.Não sei se consegui explicar direito, qualquer coisa pergunte.
Puxa… muitíssimo obrigada!!!!
Funcionou!!!!
Muito obrigada mesmo!!!!Bjks
Mica
Gente, como posso inserir novos phps? Gostei dessa solução, por preciso de um menu em inglês para categoria “english” e outro em português, para referente categoria.
Mas não sei como inserir um “sidebar2.php”. =/
- O tópico ‘Sidebar diferente no Single post’ está fechado para novas respostas.