Como ter um header diferente para cada link do menu?
-
Olá, amigos!
Estou com um problema e não consigo solucioná-lo já faz algumas semanas.
Estou criando um site em WordPress e necessito que o header do layout mude em cada link do menu.
O site é um revista eletrônica e no menu estão os links das editorias (Tecnologia, comportamento, Games, etc). E necessito que quando o usuário clicar em algum desses links, headers específicos apareçam em cada um deles.
Não domino PHP muito bem e estou tendo muita dificuldade para encontrar uma função que solucione o meu problema. =/Peço a ajuda de todos e agradeço a atenção desde já!
-
É só você usar um “if” para definir qual a classe do header, de acordo com a categoria.
Mais ou menos assim:
<?php if (is_category('1')) { ?> //defina aqui uma classe para a sua div do Header <?php } elseif (is_category('2')) { ?> //defina aqui uma outra classe para a sua div do Header <?php } else { ?> //coloque aqui a classe padrão para a sua div do Header <?php } ?>
Depois é só definir um CSS para cada classe.
Agora que li melhor a sua dúvida.
Acho que seria mais pra isso:
<?php if (is_category('1')) { ?> <?php get_header( $nomedoheader1 ); ?> <?php } elseif (is_category('2')) { ?> <?php get_header( $nomedoheader2 ); ?> <?php } else { ?> <?php get_header(); ?> //esse último seria um header padrão <?php } ?>
Depois é só criar varios arquivos de header com os nomes
header-nomedoheader1.php
header-nomedoheader2.phpE edita-los com preferir.
Só complementando a resposta do mociaro, acredito que devem ser várias categorias que vão precisar de um header especifico, sendo assim sugiro utilizar switch{} ao invés de vários if’s e elseif.
Na verdade são 10 categorias. Então seria um header cada cada uma. E uma para a home do site.
Não será necessário um header padrão.E mociaro, eu gostaria de entender melhor sobre o código que você me passou: Nessas diversas páginas em PHP que eu terei que criar para cada header, eu colocarei exatamente o quê nelas?
Porque eu achei que eu fosse chamar esse código no meu header.php.
E as classes eu fosse criar no meu style.css.
Ah, e outra duvida que eu tenho: No meu HTML os valores do header então em uma class, e não ID.
Isso interfere em alguma coisa neste código PHP?Obrigado e desculpe pelas tantas perguntas! ^^”
Então o código certo é o primeiro que eu passei.
É só fazer algo assim:
<?php if (is_category('1')) { ?> <div class="topo01"> <?php } elseif (is_category('2')) { ?> <div class="topo02"> <?php } elseif (is_category('3')) { ?> <div class="topo03"> <?php } else { ?> <div class="topohome"> <?php } ?>
Tanto Class quanto ID funcionam nessa forma que eu passei.
O switch{} que o leobaiano disse eu não conheço. Vou estuda-lo.
Supondo que “cada item do menu” sejam categorias:
CAPA
Se você usa o WP 3.0, a única coisa que precisará fazer é criar uma pagina pra categoria com a nomenclatura category_nomedacategoria.php e fazer as modificações específicas pra cada uma. O WP 3.0 detecta automático. Você mantém o category.php original para a capa, e cria conforme suas categorias, category_noticias.php, category_esporte.php, etc.CONTEÚDO (SINGLE POSTS)
– Faça backup do arquivo single.php.
– Crie uma nova single.php com o conteúdo referente aos itens do meu, conforme o exemplo:<?php $post = $wp_query->post; if ( in_category('61') ) { include(TEMPLATEPATH . '/single-noticias.php'); } elseif ( in_category('59') ) { include(TEMPLATEPATH . '/single-esporte.php'); } elseif ( in_category('355') ) { include(TEMPLATEPATH . '/single-colunas.php'); } elseif ( in_category('372') ) { include(TEMPLATEPATH . '/single-variedade.php'); } else { include(TEMPLATEPATH . '/single-original.php'); } ?>
Em in_category(‘xx’), vc configura o ID da categoria.
E pra cada “item do menu”, vc vai ter que criar uma single, assim como exemplificado no código.
- O tópico ‘Como ter um header diferente para cada link do menu?’ está fechado para novas respostas.