Usando tags condicionais no WordPress

Publicados: 2012-12-27

Vamos dar uma olhada em como executar funções personalizadas em seus temas diferentes locais de gancho com base em certas condições sendo atendidas e retornando sim.

Se você usar uma estrutura de temas premium como o Genesis, terá acesso a um guia do usuário.

O guia do usuário geralmente contém trechos de código contendo funções personalizadas.

Observação: se você não estiver usando uma estrutura de tema premium, precisará criar as funções personalizadas ou encontrar um trecho de código que funcione com seu tema.

Essas funções personalizadas podem ser executadas em locais de temas específicos usando seus ganchos de ação de temas.

Tudo o que você precisa fazer é colar o trecho de código no arquivo functions.php dos seus temas filhos para personalizar as funções do seu tema.

Cada estrutura de tema usa ganchos diferentes, mas eles praticamente fazem a mesma coisa, eles recebem nomes diferentes, como:

 thesis_after_post genesis_after_post woo_post_after

Esses 3 exemplos são executados após o término da postagem, onde você pode adicionar uma área de widget, banner ou caixa de opção de e-mail com botões de compartilhamento social/seguir.

Mas e se você quiser apenas que a função personalizada seja executada em um local de gancho específico com base em certas condições, como? Por exemplo:

  • Apenas em posts únicos: is_single()
  • Apenas em postagens em uma categoria específica: is_category()
  • Apenas em uma página de arquivo: is_archive()
  • Apenas na página inicial: is_home()

Adicionar uma tag condicional à sua função personalizada que é executada no local do gancho do seu tema permite que você execute a função somente se a condição retornar sim.

Observação: convém testar essas tags com os snippets de código para suas funções personalizadas em uma configuração local antes de adicionar o código a um site ativo.

Quando estiver confortável usando funções personalizadas e entender onde e como os ganchos de ação de seus temas funcionam, você pode dar um passo adiante usando tags condicionais ou instruções condicionais, como alguns desenvolvedores as chamam.

Então, como eu uso instruções condicionais?

Exemplos de tags condicionais

Aqui estão algumas tags condicionais comuns usadas por designers do WordPress, bem como desenvolvedores de temas e plugins.

 is_home() is_category() is_single() is_page()

Em primeiro lugar, vamos dar uma olhada no uso de tags condicionais com base em várias instruções.

is_single & in_category

 if (is_single() && in_category('134'))
 if (is_single() && in_category('web-design'))

Ambos os snippets de código fazem exatamente a mesma coisa e contêm 2 tags condicionais.

O primeiro usa o id de categoria de 134 e o segundo usa o slug de categoria 'web-design'.

Qualquer função que você incluir com este código será executada apenas em postagens únicas na categoria que contém um ID de postagem de 134 ou slug de página 'web-design'. Esta é claramente a categoria de web design.

Parâmetros

Como você pode ver no exemplo acima, você pode usar diferentes parâmetros com tags condicionais como:

  1. Código da postagem
  2. Título da postagem
  3. Pós Slug

Algumas tags condicionais, como a tag is_home(), não excluem nenhum parâmetro, provavelmente porque não precisam de nenhum.

is_page

 if (is_page('4289'))
 if (is_page('contact'))

Ambas as tags condicionais também fazem exatamente a mesma coisa.

O primeiro usa o ID de postagem da página de 4289 e o segundo o nome da página e slug 'contato'.

As funções que você incluir com esta tag só serão executadas na página de contato.

Tags condicionais da página inicial

Os usos mais comuns para usar as tags is_home seriam para exibir algo apenas na página inicial ou excluir a página inicial da função.

é o lar

 if (!is_home()

Este código contém o ! antes da tag condicional home_page para excluir a página inicial da função.

 if (is_home()

Esse código cria uma condição que se aplica apenas à página inicial.

Exemplo de trabalho

Se você copiar e colar o código a seguir usando um editor de código, em seu arquivo de funções de temas filho, verá que ele imprime texto após o cabeçalho apenas em postagens únicas.

 add_action( 'genesis_entry_footer', 'add_content_after_single_posts' ); function add_content_after_single_posts() { if ( is_singular('post') ) { echo 'Content Added After Single Post Entry Footer'; } }

O código acima usa a posição do gancho genesis_entry_footer com a tag condicional is_singular('post') e imprime o texto após o conteúdo apenas em posts únicos. Este é um exemplo clássico que mostra como usar tags condicionais em uma função personalizada com seus ganchos de ação de temas.

Tags condicionais com arrays

Você também pode adicionar uma matriz à sua instrução condicional.

is_page (matriz

 if (is_page(array('contact','37290'))

Você pode adicionar mais páginas a essa matriz simplesmente incluindo-as dentro dessa matriz separadas por uma vírgula.

Esta função só será executada na página de contato e na página que contém um ID de postagem de 37290.

Saída de texto/HTML

Se você simplesmente deseja exibir algum texto ou HTML, pode adicionar uma instrução condicional aos ganchos de ações de seus temas. A maneira mais fácil de fazer isso seria colar a tag condicional com seu HTML usando um plug-in de gancho.

 if ( ! is_home()) { echo'Your Text Here'; }

Vamos pegar uma função comum com gancho de ação e adicionar uma tag condicional.

Tags condicionais no Genesis

Você pode facilmente adicionar um dos snippets de código do tema Genesis para uso em temas do StudioPress e incluir uma tag condicional com o código.

 /** Add custom body class to video category */ add_filter( 'body_class', 'add_body_class' ); function add_body_class( $classes ) { if ( is_category( 'video-tutorials' ) ) $classes[] = 'custom-class'; return $classes; }

Esse código permite que o usuário estilize a página de categoria de vídeo usando uma classe personalizada.

O parâmetro usado é o slug do tutorial em vídeo, mas você pode usar o post.id ou o título em sua tag condicional.

Tags condicionais na tese

Vamos pegar uma função personalizada do guia do usuário de temas DIY e adicionar uma declaração condicional.

 function hide_nav_menu() { if(is_page ( 'contact-page' ) ) remove_action ( 'thesis_hook_before_header', 'thesis_nav_menu' ); } add_action ( 'thesis_hook_before_html','hide_nav_menu' );

Isso ocultará o menu de navegação apenas na página de contato.

Poderíamos usar parâmetros diferentes para a página de contato, incluindo o slug da página, o ID do post ou o nome da página.

Onde Colocar o Código?

Se você estiver usando uma estrutura de tema premium, poderá colar o código em seu arquivo functions.php de temas filhos.

Todas essas estruturas oferecem um plug-in ou gerenciador de gancho que permite colar o código no local do gancho onde você deseja que o código seja executado com base em suas tags condicionais.

  • Gerenciador Woo Hook
  • Ganchos Simples Genesis
  • Ganchos de tese, headway e WordPress

Claramente, você não precisará incluir o gancho de ação em seu código se usar um gerenciador de gancho.

Outra opção é colar as tags condicionais diretamente em seus arquivos de modelo de temas no local em que deseja executar a função com base em suas condições. Esta não é uma prática recomendada, pois você perderá o código ao atualizar o tema.

Sempre é uma boa prática criar um tema filho e fazer modificações em seus arquivos de modelo lá. Melhor ainda, use as funções personalizadas que seu desenvolvedor de tema já criou e cole o código em seu arquivo de funções de tema filho com suas tags condicionais, assim que o teste provar que funciona.

Tags condicionais e exemplos do WordPress

Você encontrará uma lista de todas as tags condicionais do WordPress com exemplos no WordPress Codex.

Tags condicionais específicas do tema

Alguns temas premium também usam suas próprias tags condicionais que são exclusivas de sua estrutura de tema.

Woo Commerce é um destes: Exemplos:

 is_woocommerce() - Returns true if on a page which uses WooCommerce templates is_product_category() - Returns true when viewing a product category archive is_checkout() - Returns true on the checkout page.

Saiba mais sobre como usar tags condicionais com Woo Commerce.

Conclusão

Usar um tema que oferece uma grande variedade de trechos de código testados pelo desenvolvedor é um grande bônus. Dessa forma, você pode escolher qualquer uma das tags condicionais que o WordPress oferece e adicioná-la ao seu snippet de código para personalizar seu tema da maneira que desejar.