Na WPBeginner, entendemos que a criação de uma hierarquia bem estruturada de categorias e subcategorias pode melhorar a experiência do usuário e o SEO.
Por padrão, a maioria dos temas do WordPress listará todas as categorias associadas a uma postagem.
No entanto, um de nossos leitores perguntou se é possível exibir somente a categoria principal dentro do loop da postagem e excluir as categorias secundárias. Ele deseja concentrar a atenção dos visitantes no tópico mais amplo de cada post, em vez de em uma hierarquia complexa.
Neste artigo, mostraremos como usar um snippet de código para modificar o loop de postagem do WordPress e exibir somente a categoria principal em uma única postagem.
Quando exibir somente a categoria principal no WordPress
Muitos proprietários de sites usam categorias pai e filho para criar uma estrutura para seus sites.
Por exemplo, um blog de viagens pode ter destinos de viagem organizados por categorias em que cada região é uma categoria principal e as cidades são categorias secundárias.
Da mesma forma, um blog de culinária pode publicar receitas organizadas em categorias principais e secundárias. Por exemplo, uma categoria principal pode ser o tipo de cozinha e uma categoria secundária pode ser o tipo de prato.
Agora, a maioria dos temas do WordPress usa a
tag de modelo the_category()
para listar todas as categorias associadas a um post.
Essa função é eficiente, mas exibirá todas as categorias em ordem alfabética e ignorará completamente a relação pai/filho.
Dito isso, vamos dar uma olhada em como alterar esse comportamento e exibir apenas a categoria principal no loop do WordPress.
Exibir somente a categoria pai no loop de postagem do WordPress
Para este tutorial, você precisará editar seus arquivos de tema do WordPress. Se você não tiver feito isso antes, consulte nosso artigo sobre como copiar e colar trechos de código no WordPress.
Primeiro, você precisa adicionar um código ao arquivo functions.php do seu tema ou usar um plug-in de snippets de código. Recomendamos o uso do WPCode porque ele permite adicionar código sem quebrar o site, e sua validação inteligente de snippet de código ajuda a evitar erros comuns de código.
Saiba mais em nosso guia sobre como adicionar código personalizado no WordPress sem danificar seu site.
Para este tutorial, usaremos a versão gratuita do WPCode. Embora não tenha todos os recursos avançados da versão completa, ela vem com tudo o que você precisa para começar.
A primeira coisa que você precisa fazer é instalar e ativar o plug-in WPCode. Se precisar de ajuda, você pode seguir nosso guia passo a passo sobre como instalar um plugin do WordPress.
Após a ativação, você pode ir para a página WPCode ” New Snippet
Isso abrirá uma página na qual você poderá criar um snippet personalizado.
Primeiro, você precisa adicionar um título para o snippet. Depois disso, você pode copiar e colar o seguinte trecho de código no painel Visualização de código.
function wpb_get_parent_terms($taxonomy = 'category')
{
$currentPost = get_post();
$terms = get_the_terms($currentPost->ID, $taxonomy);
if (is_wp_error($terms)) {
/** @var \WP_Error $terms */
throw new \Exception($terms->get_error_message());
}
$map = array_map(
function ($term) use ($taxonomy) {
return '<a href="' . esc_url(get_term_link($term->term_id,
$taxonomy)) . '" title="' . esc_attr($term->name) . '">
' . $term->name . '
</a>';
},
array_filter($terms, function ($term) {
return $term->parent == 0;
})
);
return implode(', ', $map);
}
Em seguida, você precisa selecionar a opção “PHP Snippet” no menu suspenso Code Type (Tipo de código) e alternar a chave Inactive (Inativo) para Active (Ativo).
Por fim, certifique-se de clicar no botão “Save Snippet” para armazenar suas configurações.
Esse código simplesmente cria uma nova função wpb_get_parent_terms()
. Por padrão, essa função exibirá apenas as categorias pai.
Em seguida, você precisa colocar essa função nos arquivos de tema do WordPress onde deseja exibir apenas a categoria principal.
Para descobrir qual arquivo de modelo deve ser examinado, consulte nossa folha de dicas de hierarquia de modelos do WordPress para iniciantes.
Basicamente, você procurará a
tag de modelo the_category()
; dentro do loop do WordPress. Depois de encontrá-la, você precisará substituí-la pelo código a seguir:
<?php wpb_get_parent_terms(); ?>
Esse código exibirá apenas sua categoria principal.
Se você tiver várias categorias que são as categorias pai ou autônomas, todas essas categorias também serão exibidas.
O snippet de código também funcionará para todas as outras taxonomias. Por exemplo, categorias de produtos do WooCommerce ou qualquer taxonomia personalizada que você possa ter.
Basta modificar o código da seguinte forma:
<?php wpb_get_parent_terms( 'product_cat '); ?>
Esse código exibirá categorias de produtos para uma loja WooCommerce.
Ele também exibirá apenas as categorias pai ou autônomas de um produto.
Se quiser exibir uma taxonomia personalizada, substitua product_cat pelo nome da taxonomia personalizada.
Guias especializados sobre a exibição de categorias no WordPress
Agora que você já sabe como exibir somente a categoria principal para as postagens do WordPress, talvez queira ver outros guias relacionados à exibição de categorias no WordPress:
- Como exibir apenas a categoria secundária em seu loop de postagem do WordPress
- Como exibir subcategorias em páginas de categoria no WordPress
- Como exibir descrições de categorias no WordPress
- Como alterar a ordem das categorias no WordPress
- Como exibir postagens recentes de uma categoria específica no WordPress
- Como mostrar/ocultar categorias no WordPress (guia definitivo)
- Como mostrar categorias vazias nos widgets do WordPress
- Como estilizar categorias individuais de forma diferente no WordPress
- Como ocultar ou estilizar suas subcategorias no WordPress
- Como adicionar imagens de taxonomia (ícones de categoria) no WordPress
Esperamos que este artigo tenha ajudado você a aprender como exibir somente a categoria pai para seus posts do WordPress. Talvez você também queira ver nosso guia sobre como exibir campos personalizados fora do loop ou nossa escolha especializada do melhor software de chatbot de IA para seu site.
Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.
Davide
Great! And if i want to give a different css to these categories?
Pedrille
Awesome ! thks
Nithi
How to display only Child category? (Like in the image, “Thesis” above? )
Cami Tirapani
I’m wondering the same thing. :/
Joseph
I know its old, but that would just be the current category
sathish
very useful
JordashTalon
You should vote this post up on Wordpress I’ve noticed a huge lack of adding the Depth feature to Wordpress Functions: http://wordpress.org/extend/ideas/topic/add-depth-parameter-to-the_category?replies=3#post-21041
JordashTalon
Wordpress Category functions that is
Kate M
Didn’t work for me
AselHora
put date stamps to your posts. this way we know when you wrote it and not include code snippets 5 years old.
John Saddington
great tut!