Suporte » Temas » Sidebar diferente no Single post

  • Resolvido micalopes

    (@micalopes)


    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 3

    O 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 1

    Imagino 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…

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • VC tem que pesquisar por conditional tags:
    http://codex.wordpress.org/Conditional_Tags

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

    Criador do tópico micalopes

    (@micalopes)

    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('&laquo; Anterior') ?></div>
    				<div class="navigation-next"><?php previous_posts_link('Pr&oacute;xima &raquo;') ?></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(); ?>

    O link provisório é:

    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.

    Criador do tópico micalopes

    (@micalopes)

    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”. =/

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • O tópico ‘Sidebar diferente no Single post’ está fechado para novas respostas.