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 apenas a categoria secundária em seu loop de postagem do WordPress

Nota editorial: Ganhamos uma comissão de links de parceiros no WPBeginner. As comissões não afetam as opiniões ou avaliações de nossos editores. Saiba mais sobre Processo editorial.

Deseja exibir apenas a categoria secundária em seu loop de postagem do WordPress?

A maioria dos temas do WordPress mostra todas as categorias de uma postagem, inclusive as categorias pai e filho. No entanto, se você adicionar muitas categorias às suas postagens, isso pode fazer com que seu site pareça confuso e impedir que os leitores encontrem conteúdo interessante.

Neste artigo, mostraremos como exibir facilmente apenas a categoria secundária em seu loop de postagem do WordPress.

Showing only child categories inside WordPress post loop

Por que exibir apenas a categoria secundária em seu loop de postagem do WordPress?

Ao criar um blog no WordPress, você pode organizar seu conteúdo usando categorias e tags.

Para ajudar os leitores a encontrar conteúdo interessante mais rapidamente, você pode até criar categorias (ou subcategorias) secundárias.

Por exemplo, se você tiver um blog de viagens, poderá criar uma categoria “Destinos” e, em seguida, ter categorias secundárias como “Europa”, “América” e “Austrália”.

Por padrão, a maioria dos temas do WordPress mostra todas as categorias principais e secundárias de um post.

Displaying the child categories only in the WordPress post loop

Entretanto, se você usar muitas categorias, as páginas do seu blog poderão começar a parecer confusas e complicadas. Isso também pode tornar mais difícil para os leitores encontrarem a categoria na qual estão interessados.

Por esse motivo, talvez você queira ocultar as categorias genéricas principais de uma postagem e mostrar somente as categorias secundárias. Dito isso, vamos ver como você pode exibir somente as categorias secundárias no loop de posts do WordPress.

Antes de editar um arquivo de tema do WordPress: pontos-chave a serem lembrados

Este guia é destinado a pessoas que se sentem confortáveis com a codificação e a edição de arquivos de temas do WordPress. Aqui estão algumas coisas que você deve fazer antes de seguir o tutorial:

  1. Primeiro, você precisa conectar seu site ao FTP ou abrir o gerenciador de arquivos do seu host da Web para poder acessar esses arquivos.
  2. Se você for iniciante, consulte nosso guia para iniciantes sobre como colar trechos da Web no WordPress para se preparar com antecedência.
  3. Recomendamos criar um backup ou usar um site de teste para seguir esse método. Dessa forma, se algo der errado, seu site ativo não será afetado.

Por fim, este guia só se aplica a temas clássicos do WordPress. Os temas de bloco têm uma estrutura diferente para os arquivos de tema.

Exibindo somente a categoria secundária no loop de postagem do WordPress

Primeiro, você precisará localizar o código nos arquivos do seu tema que é responsável pela exibição das categorias. Isso pode levar algum tempo, mas você pode usar o recurso de localização do seu editor de código para acelerar o processo.

Tente encontrar códigos relacionados à categoria, como has_category ou get_the_category_list. Se você os localizar, deverá estar no arquivo correto.

Se você usa o tema Twenty Twenty-One, o arquivo que você deve procurar é o arquivo template-tags dentro da pasta ‘inc’. Aqui está o snippet responsável pela exibição das categorias:

if ( has_category() || has_tag() ) {
    echo '<div class="post-taxonomies">';
    $categories_list = get_the_category_list( wp_get_list_item_separator() );
    if ( $categories_list ) {
        printf(
            /* translators: %s: List of categories. */
            '<span class="cat-links">' . esc_html__( 'Categorized as %s', 'twentytwentyone' ) . ' </span>',
            $categories_list // phpcs:ignore WordPress.Security.EscapeOutput
        );
    }
    echo '</div>';
}

Se você não conseguir encontrar o arquivo de modelo correto, consulte nossa folha de dicas sobre hierarquia de modelos do WordPress.

Agora que você encontrou o código correto, pode adicionar o seguinte snippet:

// Get the IDs of categories
    $categories = get_the_category();
    $child_cat_ID = array(); // Array to store child category IDs

    foreach( $categories as $category ) {
        // Check if the category has a parent (i.e., it's a child category)
        if ( $category->parent > 0 ) {
            $child_cat_ID[] = $category->term_id; // Store the child category ID
        }
    }

    if ( !empty($child_cat_ID) ) {
        $output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' );
        foreach($child_cat_ID as $cat_id) {
            $cat_link = get_category_link($cat_id);
            $cat_name = get_cat_name($cat_id);
            $output .= '<a href="' . esc_url($cat_link) . '">' . esc_html($cat_name) . '</a>';
        }
        $output .= '</span>'; // Close the span tag after the loop
        echo $output; // Echo the entire output

Se você usa o tema Twenty Twenty-One, deve adicionar o código acima substituindo o que está entre essas linhas:

if ( has_category() || has_tag() ) {
    echo '<div class="post-taxonomies">';
// Replace the code in between these lines
}
    echo '</div>';
}

Esta é a aparência que deve ter:

Editing a theme file to display only child categories

Quando terminar, salve as alterações e carregue o arquivo de volta para o servidor de hospedagem na Web.

Agora, você precisa visitar uma postagem que tenha uma ou mais categorias secundárias. Você verá que a categoria principal está oculta, e o WordPress agora está mostrando apenas as categorias secundárias.

Esperamos que este artigo tenha ajudado você a aprender como exibir somente a categoria secundária em seus posts do WordPress. Em seguida, talvez você queira ver nosso guia sobre como ganhar dinheiro on-line blogando com o WordPress ou nossas escolhas de especialistas para os melhores plug-ins e ferramentas de SEO que você deve usar.

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

11 ComentáriosDeixe uma resposta

  1. Syed Balkhi says

    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. Mike says

    Managed it!

    foreach((get_the_category()) as $childcat) {
    $parentcat = $childcat->category_parent;
    if (cat_is_ancestor_of(10, $childcat)) {
    echo get_cat_name($parentcat);
    }
    }

  3. MIke says

    I have three main categories and this code is successfully working in my single page loop to echo the actual selected category name.
    I now want to echo the parent of the category. The complication is that I have two layers below the main category (3 levels) and I want to echo the one level parent not the top level parent. It seems easy to echo the top parent, but I haven’t seem any code to return the child level category of a grandchild category?

  4. Marian Rick says

    This is a great piece of code. Thanks a lot so far!

    For one of my projects I have to go further, and display only the lowest subcategory. So there may be three levels, (Forms -> Squares -> Big Squares). With this code all subs (Squares -> Big Squares) are displayed. How can I tell this code to repeat the process till only the last child is found and displayed?

    If you’ve got any solutions for that you are my heroes once again! Keep up your great work and blog!

    • Editorial Staff says

      If you are trying to display a list of all child categories, then use wp_list_categories() function. It has parameters that allow you to list only child categories or only parent categories. But that doesn’t work for the case that we are talking about in this article.

      Administrador

  5. Keith Davis says

    Great snippets of info from you guys.
    I really have to start to get into this PHP.

    Great site boys and I notice that you are up to Pagerank 6!
    How about a couple of posts on upping your pagerank.

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.