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

Come visualizzare solo la categoria figlio/bambino nel loop degli articoli di WordPress

Nota editoriale: guadagniamo una commissione dai link dei partner su WPBeginner. Le commissioni non influenzano le opinioni o le valutazioni dei nostri redattori. Per saperne di più su Processo editoriale.

Volete visualizzare solo la categoria figlio/bambino nel loop degli articoli di WordPress?

La maggior parte dei temi WordPress mostra tutte le categorie di un articolo, comprese le categorie figlio/bambino. Tuttavia, se si aggiungono molte categorie ai propri articoli, il sito può apparire disordinato e impedire ai lettori di trovare contenuti interessanti.

In questo articolo vi mostreremo come visualizzare facilmente solo la categoria figlio/bambino nel loop di WordPress.

Showing only child categories inside WordPress post loop

Perché visualizzare solo la categoria figlio/bambino nel loop degli articoli di WordPress?

Quando si crea un blog su WordPress, è possibile organizzare i contenuti utilizzando categorie e tag.

Per aiutare i lettori a trovare più velocemente i contenuti interessanti, si possono anche creare categorie (o sottocategorie) figlio/bambino.

Ad esempio, se avete un blog di viaggi, potreste creare una categoria “Destinazioni” e poi avere figli/bambini come “Europa”, “America” e “Australia”.

Per default, la maggior parte dei temi di WordPress mostra tutte le categorie figlio/bambino di un articolo.

Displaying the child categories only in the WordPress post loop

Tuttavia, se si utilizzano molte categorie, le pagine del blog possono sembrare disordinate e complicate. Può anche rendere più difficile per i lettori trovare la categoria di loro interesse.

Per questo motivo, si potrebbe voler nascondere le categorie genitore generiche di un articolo e mostrare solo le categorie figlio/bambino. Detto questo, vediamo come visualizzare solo le categorie figlio/bambino nel loop degli articoli di WordPress.

Prima di modificare il file di un tema WordPress: punti chiave da ricordare

Questa guida si rivolge a persone che hanno familiarità con la codifica e la modifica dei file dei temi di WordPress. Ecco alcune cose da fare prima di seguire il tutorial:

  1. Per prima cosa, è necessario collegare il sito web all’FTP o aprire il file manager dell’host web per poter accedere ai file.
  2. Se siete principianti, potete consultare la nostra guida per principianti su come incollare snippet dal web in WordPress per prepararvi in anticipo.
  3. Si consiglia di creare un backup o di utilizzare un sito di staging per seguire questo metodo. In questo modo, se qualcosa va storto, il sito live non ne risentirà.

Infine, questa guida è applicabile solo ai temi classici di WordPress. I temi a blocchi hanno una struttura diversa per i file del tema.

Visualizzare solo la categoria figlio/bambino nel loop degli articoli di WordPress

Per prima cosa, è necessario trovare nei file del tema il codice responsabile della visualizzazione delle categorie. Questa operazione può richiedere un po’ di tempo, ma si può usare la caratteristica di ricerca dell’editor del codice per accelerare le cose.

Cercare di trovare codice relativo alle categorie, come has_category o get_the_category_list. Se li si trova, si dovrebbe essere nel file giusto.

Se si utilizza il tema Twenty Twenty-One, il file da cercare è il template-tags all’interno della cartella ‘inc’. Ecco lo snippet responsabile della visualizzazione delle categorie:

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 non riuscite a trovare il file del template giusto, consultate la nostra scheda sulla gerarchia dei template di WordPress.

Ora che avete trovato il codice giusto, potete aggiungere il seguente 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 si utilizza il tema Twenty Twenty-One, si deve aggiungere il codice qui sopra, sostituendo quello tra queste righe:

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

Ecco come dovrebbe apparire:

Editing a theme file to display only child categories

Al termine, salvare le modifiche e quindi effettuare l’uploader del file sul server che ospita il sito.

Ora è necessario visitare un articolo che ha una o più categorie figlio/bambino. Vedrete che la categoria genitore è nascosta e WordPress mostra ora solo le categorie figlio/bambino.

Speriamo che questo articolo vi abbia aiutato a capire come visualizzare solo la categoria figlio/bambino nei vostri articoli di WordPress. A seguire, potete consultare la nostra guida su come fare soldi online facendo blog con WordPress o le nostre scelte degli esperti sui migliori plugin e strumenti SEO da utilizzare.

Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.

Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come WPBeginner è finanziato , perché è importante e come puoi sostenerci. Ecco il nostro processo editoriale .

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.

Il kit di strumenti WordPress definitivo

Ottenete l'accesso gratuito al nostro kit di strumenti - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Reader Interactions

11 commentiLascia una risposta

  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.

      Admin

  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.

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tenga presente che tutti i commenti sono moderati in base alle nostre politica dei commenti e il suo indirizzo e-mail NON sarà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avremo una conversazione personale e significativa.