Mateus Souza

Conversas sobre desenvolvimento web

Categorias »

Novas Funções (Functions) do WordPress – Parte 2

2

Voltando a série de post sobre as novas funções do WordPress 2.8, hoje vou falar sobre a função is_page ou is_page_or_sub.

wordpress28ispage

Se você ainda não leu o primeiro post desta série, eis ai o link:

Parte 1

is_page ou is_page_or_sub(); function

Vamos inventar uma situação, talvez eu acerte na mosca o que você precisa ou então passe raspando, rsrs. Em alguns projetos é necessário um estilo diferenciado ou uma função especial para uma determinada página. Peguemos como exemplo uma página de portfólio. Até o wordpress 2.7 você declararia o seguinte código em php para criar esta função especial ou seja lá o que for:

<?php if(is_page('portfolio')) : ?>
//Se for apareça, ou faça isto...
<?php else :?>
//E se caso eu usar o else...Se não(else), apareça ou faça isto...
<?php endif; ?>

Para aqueles que ainda nem conhecem a função is_page(). Recomendo que dêem uma lida na documentação do WordPress, pois vou explicar rapidamente. Esta função irá retornar valores booleanos (verdadeiro ou falso / true ou false). Se for verdadeiro será executado a sua função que você estabelecer, caso seja falso não executará ou executará uma função diferente. Alem de usar o nome de página podemos usar o ID, o slug da página ou todos de uma vez. Observe:

<?php is_page(42);
// Usando o ID.

is_page('Contato');
// Usando o nome ou titulo da página.

is_page('about-me');
// usando o slug da página.

is_page(array(42,'about-me','Contact'));
// Ou usando todos.... é útil para uma função que vai em mais de uma página.
 ?>

Agora voltando a situação anterior:
-Rá, tem um probleminha… se esta página for uma sub_pagina da página Portfólio? Até então você teria que fazer uma gambiarra, ou um monte de if, mas fique feliz, seus problemas acabaram :). Em vez de usar somente is_page use is_page_or_sub.

<?php if(is_page_or_sub('portfolio')) : ?>
//Se for apareça, ou faça isto...
<?php else :?>
//E se caso eu usar o else... Se não(else), apareça ou faça isto...
<?php endif; ?>

Para uma explicação mais “técnica”, a função irá checar se a página tal ou uma sub_pagina (child ) da página tal existe, se existir ele executa o código.
Espero que tenham entendido, qualquer dúvida pode perguntar, só fazer um comentário no post.

Depois leia também:

Documentação do WordPress – Função Is_page
Documentação do WordPress – Lista de Funções

Até a próxima.

2 Comentários

  1. Igor disse:
    4 de maio de 2011 às 17:00

    Tem como combinar Is_page e is_home para exibir o mesmo conteúdo? por exemplo:

    Mas no meu caso não está aparecendo o arquivo tabs.php onde deveria

  2. Igor disse:
    4 de maio de 2011 às 17:01

    Consegui, apenas trocando “&” por “or”

Faça um Comentário

Todas as Categorias