Como adicionar lógica condicional ao seu tema WordPress

Publicados: 2021-02-25

Construir um site com o WordPress oferece grande flexibilidade com o que você pode fazer em termos de design e funcionalidade. E, à medida que você se aprofunda no desenvolvimento do tema, descobrirá que há momentos em que precisa segmentar uma página, categoria ou tipo de postagem específico para algo especial. É aí que a lógica condicional pode tornar seu trabalho muito mais fácil.

A lógica condicional é um recurso poderoso das linguagens de programação (PHP, no nosso caso). Em essência, podemos usar o código para verificar se existe uma determinada condição e, em seguida, fazer algo específico se essa condição for atendida. Um exemplo simples disso seria verificar se um usuário está atualmente na página inicial do nosso site. Usando lógica condicional, podemos optar por carregar um controle deslizante ou outro conteúdo especial nessa situação.

Com relação ao WordPress, existem várias tags condicionais úteis incorporadas ao software que nos permitem testar todos os tipos de cenários. Eles estão bem documentados e permitem que você traga um nível mais alto de funcionalidade para seu site.

Hoje, veremos algumas das tags condicionais mais usadas e como você pode implementá-las em seu próprio site.

Uma observação sobre o uso de tags condicionais

Tags condicionais são bits de código PHP e devem entrar no tema ativo do seu site. Há vários lugares em que você pode usar a lógica condicional em um tema.

Se você ainda não fez isso, é uma boa ideia se familiarizar com a Hierarquia de modelos do WordPress para obter uma explicação de como os arquivos de tema funcionam.

E, antes de tentar implementar um novo código em um site ativo, é melhor configurar um ambiente de desenvolvimento (preparação) para testar as coisas primeiro. Lembre-se que um movimento em falso com o PHP pode dar ao seu site a temida “Tela Branca da Morte”. Portanto, tome muito cuidado ao testar antes de trabalhar em um site ativo.

é o lar()

Este causa grande confusão entre os desenvolvedores. Ao observar a tag, você assumiria que is_home() seria usado para verificar a página inicial do seu site. Esse não é o caso.

Na verdade, ele procura a página atribuída como sua página de postagens, que é definida em Configurações> Leitura dentro do painel do WordPress. Por padrão, o WordPress usa sua página inicial para listar postagens – mas a maioria dos sites tende a usar uma página inicial estática.

Então, por exemplo, se você atribuiu uma página chamada “Blog” como sua página de Posts, é isso que is_home() irá procurar.

 <?php // If this the Posts page, display a message. if ( is_home() ): echo '<h2>Thanks for visiting our blog!</h2>'; endif; ?>

is_front_page()

Por outro lado, is_front_page() procura qualquer página definida como a página inicial do seu site – independentemente de ser estática ou não. É certo que isso não é a coisa mais óbvia do mundo quando você está aprendendo a criar seus próprios temas. Mas saber qual tag usar é vital.

O que é bom sobre essa tag específica é que, mesmo que você atribua uma página diferente como sua página inicial mais tarde, você ainda segmentará o lugar certo. Existem maneiras mais explícitas de segmentar páginas, mas esta mantém você protegido no caso de uma alteração.

 <?php // If this is the home page, show a special message. if ( is_front_page() ) { ?> <h1>Welcome</h1> <?php // Otherwise, show the page title. } else { ?> <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> <?php } ?>

is_single() e is_page()

Cada uma dessas tags desempenha uma função dupla. is_single() verifica se a URL atual é uma postagem. Pode ser uma postagem de blog padrão, um anexo ou pertencer a um tipo de postagem personalizada.

Da mesma forma, is_page() retornará true se a URL atual for uma página. Por padrão, ambas as tags segmentam qualquer conteúdo que esteja sob a égide de uma página ou postagem. Esta é uma linha comum entre muitas tags condicionais.

 <?php // Target all posts. if ( is_single() ): echo 'You are on a single post.'; endif; // Target all pages. if ( is_page() ): echo 'This is a page'; endif; ?>

Mas você também pode aproveitar essas tags para segmentar uma postagem ou página específica adicionando um ID ou slug.

 <?php // Target About Us if ( is_page( 'about-us' ) ): ?> <a href="#"></a> <?php endif; ?>

O uso de uma matriz permitirá que você segmente várias partes do conteúdo.

 <?php // Target About Us and Contact Us pages. if ( is_page( array('about-us', 'contact-us') ) ): ?> <a href="#"></a> <?php endif; ?>

is_tax() e has_term()

As taxonomias desempenham um papel importante na forma como o conteúdo é organizado em um site. Duas das mais comuns são categorias e tags – que possuem suas próprias tags condicionais. Mas o WordPress também nos permite criar nossas próprias taxonomias.

Por exemplo, se seu site contém resenhas de música, você pode ter uma taxonomia chamada “Gênero”. A partir daí, você poderia ter listado gêneros específicos de música dentro dessa taxonomia, como “Rock”, “Hip-Hop” e “Jazz”.

is_tax() tem como alvo uma página de arquivo de taxonomia. Continuando com nosso exemplo de análise de música, essa tag seria acionada (entrar em vigor) quando estivéssemos na página de arquivo para cada um dos gêneros específicos.

 <?php // Display a message on our Genre archive pages. if (is_tax('genre','rock','hip-hop','jazz') ): echo '<h2>This is a genre archive. Enjoy!</h2>'; endif; ?>

has_term() é usado para direcionar a postagem atual com base em qual taxonomia ela pertence. Isso é útil se, por exemplo, quisermos adicionar um gráfico especial para postagens em cada gênero de música em nosso site.

 <?php // Show an image for the Rock genre. if (has_term('rock','genre') ): ?> <?php endif; ?>

is_page_template()

Quando estiver familiarizado com a hierarquia de modelos de um tema, convém criar seus próprios modelos de página personalizados. is_page_template() permite direcionar o modelo de página atual que está sendo usado (independentemente de ser ou não personalizado). Você pode verificar se algum modelo de página está sendo usado ou procurar um específico.

No entanto, você precisa ter cuidado ao procurar um modelo de página específico. Como essa tag verifica a existência de um nome de arquivo, a condicional pode parar de funcionar se o nome desse modelo for alterado. Você terá que atualizar seu código para refletir quaisquer alterações no nome do arquivo.

 <?php // Add a search form to the Services page template. if (is_page_template('services.php') ): ?> <?php get_search_form(); ?> <?php endif; ?>

Todas as condições atendidas

Embora esta tenha sido apenas uma breve introdução de como a lógica condicional pode ser usada, esperamos que aguce seu apetite por aprender mais.

Depois de dominar as condicionais, você poderá personalizar seu site de maneiras que seriam quase impossíveis de outra forma.

Eles podem dar a você um controle detalhado sobre a aparência e o layout do seu tema, enquanto ainda se beneficiam de todas as vantagens de utilizar um CMS.