if(is_page (várias páginas)
-
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
-
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?
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.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.
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, 11 meses atrás por royroy.
Pessoal, só para deixar registrado caso alguém tenha um problema semelhante.
consegui resolver o problema acima como o elseifelseif ( is_page(array('67'))) {
Felipe, como seria esse código utilizando as páginas mães ?
como faço pra puxar as filhas?Abs
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! 🙂
Oi @marydelbrollo,
No começo dos seus arquivos provavelmente existe uma chamada para
get_header()
, certo? Se você usarget_header('secondary')
ele vai puxar o arquivoheader-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?
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 navegadorentrei 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?
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 7 anos, 2 meses atrás por Felipe Elia. Razão: alteração para exibição de código
- Esta resposta foi modificada 7 anos, 2 meses atrás por Felipe Elia.
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! 🙂
- O tópico ‘if(is_page (várias páginas)’ está fechado para novas respostas.