Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Como exibir somente a categoria pai no loop de posts do WordPress

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.

Displaying only the parent category in WordPress loop

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.

Parent and child categories displayed

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

Adding a New Snippet in WPCode

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);
}
Adding a Title and Code Snippet to WPCode

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.

In WPCode, Select PHP as the Code Type and Toggle the Snippet Active

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.

Only parent category displayed

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.

Only parent product category displayed

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:

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.

Divulgação: Nosso conteúdo é apoiado pelo leitor. Isso significa que, se você clicar em alguns de nossos links, poderemos receber uma comissão. Veja como o WPBeginner é financiado, por que isso é importante e como você pode nos apoiar. Aqui está nosso processo editorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

O kit de ferramentas definitivo WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Reader Interactions

12 ComentáriosDeixe uma resposta

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Davide

    Great! And if i want to give a different css to these categories?

  3. 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

  4. AselHora

    put date stamps to your posts. this way we know when you wrote it and not include code snippets 5 years old.

Deixe uma resposta

Obrigado por deixar um comentário. Lembre-se de que todos os comentários são moderados de acordo com nossos política de comentários, e seu endereço de e-mail NÃO será publicado. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.