Suporte » Desenvolvendo com WordPress » if(is_page (várias páginas)

  • Resolvido royroy

    (@royroy)


    Olá pessoal.
    preciso exibir uma imagem no topo para determinadas páginas, segue o código:

    <?php 
    /* 
    */
    if(is_page(88)) {
     get_header('about');
    }
    else {
     get_header();
    }
     wp_head();
    ?>

    Esse código acima está funcionando, se a pessoa entra na página com ID 88, exibi o header.php correspondente, porém preciso por mais de uma página nisso, exemplo:
    if(is_page( 88, 90, 92, 96)) {

    Ai nesse modo não funciona.
    alguém tem ideia de como fazer isso?
    Obg

Visualizando 15 respostas - 1 até 15 (de um total de 16)
  • Moderador Felipe Elia

    (@felipeelia)

    Oi @royroy,

    Já tentou passar os números em um array?

    if(is_page(array(88, 90, 92, 96))) {

    Não esquece de voltar pra dizer se resolveu e marcar seu tópico como resolvido se for o caso, ok?

    Criador do tópico royroy

    (@royroy)

    Vlw pela resposta @felipe
    consegui o resultado (apesar da gambiarra) com o seguinte código:

    if ( is_page('88') || is_page('206') | is_page('208') | is_page('210') | is_page('212') | is_page('214') ) {
     get_header('about');
    }

    Acho que o ideal nesse caso era criar uma página mãe, e colocar as demais como filhas.
    ai eliminaria esse código grande, porém, não sei setar o if com a mãe e puxar as páginas filhas.

    Moderador Felipe Elia

    (@felipeelia)

    Oi @royroy,

    O código que eu passei não funcionou ou não chegou a testar? Para testar se a página é filha de outra você pode usar

    global $post;
    if (123 == $post->post_parent) { //Troque 123 pelo ID da página mãe
    }

    Se você não tiver mais nenhuma dúvida, não esqueça de marcar seu tópico como resolvido.

    Criador do tópico royroy

    (@royroy)

    Testei, funcionou sim.
    estou utilizando ele, mas tanto na gambiarra de antes quanto no seu estou tendo outro problema. não encontro solução.

    O problema que tenho que criar 5 headers diferentes.
    então meu código ficou:

    <?php 
    /* 
    */
    if(is_page(array(88, 206, 208, 210, 212, 214))) {
     get_header('about');
    }
    if ( is_page(array('67'))) {
     get_header('who');
    }
    else {
     get_header();
    }
     wp_head();
    ?>

    Funciona, mas quando coloco pra puxar na página 67 o header “who”.
    nas páginas que puxam o header about, ficam 2 headers o about e o padrão.

    • Esta resposta foi modificada 7 anos, 6 meses atrás por royroy.
    Criador do tópico royroy

    (@royroy)

    Pessoal, só para deixar registrado caso alguém tenha um problema semelhante.
    consegui resolver o problema acima como o elseif

    elseif ( is_page(array('67'))) {

    Felipe, como seria esse código utilizando as páginas mães ?
    como faço pra puxar as filhas?

    Abs

    Moderador Felipe Elia

    (@felipeelia)

    Oi @royroy,

    No código que eu postei você não puxa as filhas. Quando você visita um conteúdo, a variável global $post é populada com as informações dele, assim $post->post_parent terá o ID da página mãe. Dessa forma toda vez que você visitar uma página filha da página com ID 123 o if será verdadeiro.

    Se você não tiver mais nenhuma dúvida não esquece de marcar seu tópico como resolvido, beleza? Que bom que resolveu aí!

    Olá Felipe, sou nova aqui e iniciante em wordpress. Estou desenvolvendo um tema próprio, do zero, e já consegui criar a página inial estática (tipo one-page) com um link para uma página de notícias (blog) que usa um header diferente. Até aqui tudo bem, no entanto estou com um problema muito semelhante a este discutido aqui nesta postagem: não consigo fazer 2 headers diferentes para páginas diferentes funcionarem. Na página de notícias (página dinâmica – blog) funcionou, mas ao criar uma terceira página estática (galeria), ela carrega com o header da página inicial sendo que eu quero que carregue com o header igual ao do blog.

    Acredito que a solução que apresentou funcione para resolver meu problema, a questão é que como sou bem novata no assunto e também não entendo quase nada de php, não sei exatamente como usar esse código que você postou.
    Tenho criado os arquivos:
    _ header (para a página inicial – onepage)
    _ header_secondary (para outras páginas que pretendo criar. Ex: galeria)
    _ galeria (uma das páginas a serem desenvolvidas)

    E não sei onde / como aplicar o código que você postou.
    Consegue me dar um help? Lembrando que estou ainda no “jardim da infância” do wordpress… rs.

    Muito obrigada! 🙂

    Moderador Felipe Elia

    (@felipeelia)

    Oi @marydelbrollo,

    No começo dos seus arquivos provavelmente existe uma chamada para get_header(), certo? Se você usar get_header('secondary') ele vai puxar o arquivo header-secondary.php (com hífen e não com sublinhado, ok? Isso já te dá uma direção para seguir?

    ps.: O ideal é sempre abrir um tópico novo, assim as outras pessoas conseguem te ajudar também.

    Oi Felipe, primeiro obrigada pela resposta tão imediata e pela dica para uma próxima dúvida.

    O código da minha página galeria ficou assim:

    <?php get_header(‘secondary’); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div class=”entry-content”>
    <?php the_content(); ?>
    </div>
    <?php get_footer(); ?>

    Contúdo, continua chamando o header da página inicial…. onde estou errando?

    Moderador Felipe Elia

    (@felipeelia)

    Você renomeou o arquivo para header-secondary.php, com hífen? Experimente editar esse arquivo e colocar na primeira linha um <?php die('entrei no arquivo certo') ?>. Se não aparecer escrito no seu navegador entrei no arquivo certo tem alguma coisa errada, senão o WP está pegando o arquivo certo.

    Tem algo errado mesmo… eu já havia desde o início nomeado com hífen, e revisei para ter certeza. Está correto (com hífen).
    Editei o arquivo e não apareceu nada mesmo…. o que pode ser?

    Em ambos os arquivos header, imediatamente antes da tag </head> estou colocando assim: <?php wp_head(); ?> . Está correto? É só isso de código php que devo colocar nos headers?

    Moderador Felipe Elia

    (@felipeelia)

    Oi @marydelbrollo,

    Não é só isso que deve ter nos header.php não, sugiro que você se baseie em um outro tema pronto qualquer para ver como é feito, normalmente ele tem toda a estrutura da tag <head> e a abertura da tag <body>. O underscore é perfeito para isso.

    Na sua página de galeria você está usando algum template? Como você sabe qual arquivo está sendo usado pelo WP para exibir a página?

    Oi @felipeelia,

    Sim, os headers tem toda essa estrutura, o secondary por ex está assim:

    <!DOCTYPE html>
    
    <html lang="pt-br">
    <head>
    <title>Mary design</title>
    <meta charset="utf-8">
    
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <link href="<?php bloginfo('stylesheet_url');?>" rel="stylesheet">
    
    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js'></script>
    <script type="text/javascript">
    jQuery(document).ready(function($) { 
        $(".scroll").click(function(event){        
            event.preventDefault();
            $('html,body').animate({scrollTop:$(this.hash).offset().top}, 800);
       });
    });
    </script>
    
    <?php wp_head(); ?>
    </head>
    
    <body id="top">
    
    <!-- Top Background Image Wrapper -->
    <div class="bgded overlay" style="background-image: url('http://www.mary.studiolion.com.br/wp/wp-content/themes/mary/images/demo/backgrounds/01.png');">
          <br/><br/>
      <div class="wrapper row1">
        <header id="header" class="hoc clear"> 
    
          <div id="logo" class="fl_left">
            <h1><a href="#"><img src="http://www.mary.studiolion.com.br/wp/wp-content/themes/mary/images/demo/03.png" alt="" /></a></h1>
          </div>
          <nav id="mainav" class="fl_right">
            <ul class="clear">
              <li><a href="http://www.mary.studiolion.com.br/wp">Home</a></li>
              <li class="active"><a href="#">Notícias</a>
              <li><a href="#scrollwrapperlink5">Contato</a></li>
            </ul>
          </nav>
        </header>
    	      <br/>
      </div>
    </div>
    <div class="wrapper row999"><hr/><hr/><img src="http://www.mary.studiolion.com.br/wp/wp-content/themes/mary/images/demo/arrow_down.png" alt="" /></div>
    <!-- End Top Background Image Wrapper -->

    E na página que criei com o nome “galeria” o código é:

    <?php get_header('secondary'); ?>
    	<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <div class="entry-content">
            <?php the_content(); ?>
        </div>
    <?php get_footer(); ?>

    Crei um pequeno texto nessa página. Ela carrega, mas só que com o header da pagina inicial (menu, imagem, etc)… o rodapé está correto, carrega direitinho e o texto aparece certo…

    Quer dar uma olhada no projeto de teste? mary.studiolion.com.br/wp

    Em notícias, no menu, vai para o blog que tem o header que eu quero para a pagina galeria… mas entrando em: mary.studiolion.com.br/wp/galeria aparece o header da pg inicial….

    Obrigada pela sua boa vontade em me ajudar… mas não estou conseguindo enxergar o meu erro… será que falta alguma outra configuração a ser feita no painel no wordpress?

    • Esta resposta foi modificada 6 anos, 10 meses atrás por Felipe Elia. Razão: alteração para exibição de código
    • Esta resposta foi modificada 6 anos, 10 meses atrás por Felipe Elia.
    Moderador Felipe Elia

    (@felipeelia)

    Oi @marydelbrollo,

    Sempre que postar código aqui envolva o trecho com “`” ou selecione o texto e aperte no botão “code”.

    Qual é o nome do arquivo que você está usando para exibir a galera? page-galeria.php? Só galeria não vai funcionar. Recomendo que vocẽ estude a hierarquia de templates do WP, pode te ajudar a entender melhor qual arquivo é usado em qual página. As páginas do manual em Inglês trazem ainda mais informações.

    Oi @felipeelia,

    Se eu precisar postar novos códigos vou tomar esse cuidado, me perdõe.

    Talvez o problema esteja aí… nomeei o arquivo somente “galeria”. Hoje, infelismente, não tenho mais tempo para dedicar aos estudos, mas amanhã vou renomear meu arquivo e ver o resultado. Também vou ler suas indicações. Volto para dizer se deu certo, ok?
    Agradeço muito por tudo até agora e desejo uma boa noite à você.

    Obrigada! 🙂

Visualizando 15 respostas - 1 até 15 (de um total de 16)
  • O tópico ‘if(is_page (várias páginas)’ está fechado para novas respostas.