Todos nós usamos declarações condicionais em nossos desenvolvimentos no WordPress, certo? Mas você conhece todas as tags condicionais internas do WordPress ? Eles são simplesmente ótimos porque graças a essas tags é muito fácil criar declarações condicionais. Você pode, por exemplo, exibir conteúdo apenas para alguns usuários ou carregar scripts apenas se uma página estiver usando um modelo personalizado específico ou até mesmo estilizar uma postagem se essa postagem for fixa.
Tags condicionais podem ser usadas em seus temas ou em seus plugins, não importa, mas observe que em alguns plugins às vezes será um pouco complicado usar algumas tags (na verdade, todas as tags específicas de temas).
Tags condicionais disponíveis
Aqui está a lista de funções condicionais disponíveis:
- comentários_abrir
- has_tag
- tem_termo
- in_categoria
- é_404
- is_admin
- is_archive
- is_attachment
- é_autor
- is_category
- is_child_theme
- is_comments_popup
- é_data
- é_dia
- is_feed
- is_front_page
- é o lar
- é_mês
- is_multi_author
- is_multisite
- is_main_site
- is_page
- is_page_template
- is_paged
- is_preview
- is_rtl
- is_search
- é único
- é_singular
- is_sticky
- is_super_admin
- is_tag
- is_tax
- é hora
- is_trackback
- é_ano
- pings_open
- post_type_exists
- is_post_type_hierarchical
- is_post_type_archive
- is_comments_popup
- taxonomia_existe
- é_novo_dia
- has_excerpt
- has_nav_menu
- in_the_loop
- is_active_sidebar
- is_main_site
- is_plugin_active
- is_child_theme
- current_theme_supports
Você provavelmente conhece alguns deles, mas você realmente sabe a diferença entre is_single_() e is_singular() ? Ou entre id_day() e is_date() ? Você sabia is_preview() ? Para entender como funciona cada função, basta clicar no nome da tag e ler atentamente as instruções do códice.
Todas as tags condicionais retornam TRUE ou FALSE
As tags condicionais são um dos meus recursos internos favoritos do WordPress e eu realmente encorajo você a usá-las amplamente em seus códigos. Todas as funções sempre retornam TRUE ou FALSE, nunca IDs ou array().
Uma relação próxima com a hierarquia de templates
Como você deve saber, o WordPress usa um sistema de hierarquia de modelos realmente poderoso . Bem, o uso de tags condicionais está intimamente relacionado a essa hierarquia. Este é o princípio usado para selecionar a página de modelo a ser usada, dependendo da URL que você está visitando.
Tags condicionais aceitam muitos argumentos
Ao usar essas tags condicionais, você deve saber que pode passar a elas diferentes variáveis, como IDs, slug ou arrays. Aqui está um exemplo retirado do codex com a função is_author():
Quando qualquer página de autor está sendo exibida.
Quando a página de arquivo para Autor número (ID) 4 está sendo exibida.
Quando a página de arquivo do Autor com o Apelido “Vivian” estiver sendo exibida.
Quando a página de arquivo do Autor com Nicename “john-jones” está sendo exibida.
is_author( array( 4, ‘john-jones’, ‘Vivian’))
Quando a página de arquivo do autor é o ID de usuário 4, ou user_nicename “john-jones” ou o apelido “Vivian”.
Exemplos
É assim que quase todas as funções condicionais funcionam, mas é claro que você pode combinar muitas condições:
if ( is_home() && in_category( array( 9, ‘blue-cheese’, ‘Stinky Cheeses’ ) ) ) {
the_content();
}
else {
the_excerpt();
}
ou você pode fazer uma ação se ocorrer uma situação ou outra:
if ( is_home() || in_category( array( 9, ‘blue-cheese’, ‘Stinky Cheeses’ ) ) ) {
the_content();
}
else {
the_excerpt();
}
E se você quiser fazer uma condição negativa, use ” ! “:
$paged = $wp_query->get( ‘page’ );
if ( ! $paged || $paged < 2 )
{
// This is not a paginated page (or it’s simply the first page of a paginated page/post)
}
else
{
// This is a paginated page.
}
E, finalmente, usar tags condicionais é como qualquer outra instrução PHP “else if”:
if ( is_page( ‘about’ ) || ‘2’ == $post->post_parent ) {
// the page is “About”, or the parent of the page is “About”
$bannerimg = ‘about.jpg’;
} elseif ( is_page( ‘learning’ ) || ’56’ == $post->post_parent ) {
$bannerimg = ‘teaching.jpg’;
} elseif ( is_page( ‘admissions’ ) || ’15’ == $post->post_parent ) {
$bannerimg = ‘admissions.jpg’;
} else {
$bannerimg = ‘home.jpg’; // just in case we are at an unclassified page, perhaps the home page
}
Criando tags condicionais personalizadas
Em alguns casos, você precisa criar suas funções condicionais personalizadas. Isso é muito fácil de fazer, mas muitas vezes os nomes das funções não seguem a mesma lógica usada pelos desenvolvedores principais. Por favor, use a mesma convenção de nomenclatura usando prefixo como “ is_ “, “ has_