fbpx

Bem vindo ao
Blog da FULL.

Aprenda, crie e cresça seu negócio na internet.

Encontre conteúdos, dicas, tutoriais e novidades sobre as principais ferramentas Wordpress

Arquivos compatíveis com taxonomia personalizada

Você está em:

Arquivos compatíveis com taxonomia personalizada

Embora nem todos os temas utilizem taxonomias personalizadas como parte do próprio tema (talvez para portfólios), é absolutamente vital que todos os temas incluam suporte completo para arquivos de taxonomia personalizados. O que vejo com muita frequência são temas que não suportam adequadamente taxonomias personalizadas em seus modelos de arquivo e acabam causando um erro de PHP ao visualizar um arquivo de taxonomia. Este tutorial rápido mostrará uma maneira realmente fácil de evitar esse problema e fornecer suporte completo para taxonomias personalizadas, tudo em um único arquivo de modelo.

Este tutorial vai assumir que todos os arquivos de categoria, tag e taxonomia são exibidos com seu único arquivo archive.php , em oposição a arquivos separados para  category.php, tag.php,  etc.

Na maioria das vezes, no topo do  arquivo archive.php  , os desenvolvedores de temas colocam algo assim:

<h2><?php echo single_cat_title(); ?></h2>

<div class=”category-description”><?php echo category_description(); ?></div>

Ou isto:

<h2><?php echo single_tag_title(); ?></h2>

<div class=”tag-description”><?php echo tag_description(); ?></div>

Ou uma combinação:

<?php if( is_category() ) { ?>

<h2><?php echo single_cat_title(); ?></h2>

<div class=”category-description”><?php echo category_description(); ?></div>

<?php } elseif( is_tag() ) { ?>

<h2><?php echo single_tag_title(); ?></h2>

<div class=”tag-description”><?php echo tag_description(); ?></div>

<?php } ?>

Essas são todas funções perfeitamente boas para usar, exceto que elas não funcionam com taxonomias personalizadas e realmente resultarão em um erro sendo lançado (se não estiver usando uma condicional is_category/is_tag).

Se observarmos o código-fonte da função tag_description(), veremos que na verdade é apenas uma referência à função term_description() semelhante , mas com o parâmetro “post-tag” definido como padrão.

/**

 * Retrieve tag description.

 *

 * @since 2.8

 *

 * @param int $tag Optional. Tag ID. Will use global tag ID by default.

 * @return string Tag description, available.

 */

function tag_description( $tag = 0 ) {

        return term_description( $tag );

}

A função term_description() é muito boa porque (se olharmos para a fonte ), vemos que ela realmente detectará o tipo de taxonomia atual que está sendo exibido e exibirá a descrição do termo da taxonomia adequada, em vez de lançar o erro como tag_description() faz. Veja a função abaixo:

/**

 * Retrieve term description.

 *

 * @since 2.8

 *

 * @param int $term Optional. Term ID. Will use global term ID by default.

 * @param string $taxonomy Optional taxonomy name. Defaults to ‘post_tag’.

 * @return string Term description, available.

 */

function term_description( $term = 0, $taxonomy = ‘post_tag’ ) {

        if ( !$term && ( is_tax() || is_tag() || is_category() ) ) {

                $term = get_queried_object();

                $taxonomy = $term->taxonomy;

                $term = $term->term_id;

        }

        $description = get_term_field( ‘description’, $term, $taxonomy );

        return is_wp_error( $description ) ? ” : $description;

}

Há também uma ótima função para o título do termo de taxonomia que funciona da mesma maneira: single_term_title()

Isso tudo significa que podemos simplesmente usar o seguinte em nosso arquivo.php e funcionará para todas as taxonomias:

<h2><?php echo single_term_title(); ?></h2>

<div class=”tax-description”><?php echo term_description(); ?></div>

Isso é muito melhor do que criar vários arquivos para lidar com as diferentes taxonomias (a menos que você esteja criando layouts personalizados para cada um) e também é muito mais seguro.

Aprenda com a FULL.

Junte-se a mais de 50 mil pessoas que recebem em primeira mão as principais ferramentas e tecnologia para desenvolvimento web

Meu carrinho
🎁 Faltam R$100,00 para liberar a Black da FULL
Seu carrinho está vazio.

Parece que você não adicionou nada ao seu carrinho =(