Suporte » Temas » Como ter um header diferente para cada link do menu?

  • Resolvido Tamirys

    (@tamirys)


    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á!

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

    E edita-los com preferir.

    Moderador Leo Baiano

    (@leobaiano)

    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.

    Criador do tópico Tamirys

    (@tamirys)

    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.

Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • O tópico ‘Como ter um header diferente para cada link do menu?’ está fechado para novas respostas.