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

Hur man endast visar Parent Category i WordPress Post Loop

På WPBeginner förstår vi att en välstrukturerad hierarki av kategorier och underkategorier kan förbättra användarupplevelsen och sökmotorsoptimeringen.

Som standard listar de flesta teman i WordPress alla kategorier som är associerade med ett post.

En av våra Läsare frågade dock om det är möjligt att endast visa parent category i post loop och utesluta child categories. De vill fokusera sina besökares uppmärksamhet på det bredare ämnet för varje post istället för en komplex hierarki.

I den här artikeln visar vi dig hur du använder ett code snippet för att ändra WordPress inläggsslinga och endast visa den parent kategori på ett enskilt inlägg.

Displaying only the parent category in WordPress loop

När ska man bara visa Parent Category i WordPress

Många webbplatsägare använder kategorierna parent och child för att skapa en struktur för sina websites.

Till exempel kan en reseblogg ha resmål organiserade i kategorier där varje region är en parent category och städer som child categories.

Parent and child categories displayed

På samma sätt kan en matblogg publicera recept som är organiserade i kategorier för parent och child. Exempelvis kan en parent category vara cuisine type, och en child category kan vara dish type.

Nu använder de flesta teman i WordPress template-taggen_category () för att lista alla kategorier som är associerade med ett post.

Den här funktionen är effektiv, men den kommer att displayed all kategorier i alfabetisk ordning och ignorerar parent/child-relationen helt och hållet.

Med detta sagt, låt oss ta en titt på hur du ändrar detta beteende och bara visar den överordnade kategorin i WordPress-loopen.

Display Only Parent Category i WordPress Post Loop

För denna tutorial måste du editera dina temafiler i WordPress. Om du inte har gjort det tidigare kan du kontrollera vår artikel om hur du copy and paste code snippets i WordPress.

Först måste du add to en kod till ditt temas functions.php-fil eller använda ett code snippets plugin. Vi rekommenderar att du använder WPCode eftersom det låter dig add to kod utan att förstöra din site, och dess smarta giltiga code snippets hjälper dig att förhindra vanliga code errors.

Läs mer i vår guide om hur du lägger till custom code i WordPress utan att förstöra din site.

För denna tutorial kommer vi att använda den gratis versionen av WPCode. Även om den inte har alla de avancerade funktionerna i den fullständiga versionen, kommer den med allt du behöver för att komma igång.

Det första du behöver göra är att installera och aktivera pluginet WPCode. Om du behöver hjälp kan du följa vår Step-by-Step guide om hur du installerar ett plugin för WordPress.

Efter aktivering kan du gå till WPCode ” New Snippet page

Adding a New Snippet in WPCode

Detta kommer att öppna en page där du kan skapa ett custom snippet.

Först måste du add to en rubrik för snippet. Därefter kan du copy and paste följande code snippet i rutan Code Preview.

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

Därefter måste du välja alternativet ”PHP Snippet” från rullgardinsmenyn Code Type och toggle den inaktiverade omkopplaren till Active.

Slutligen, se till att du clickar på knappen ”Save Snippet” för att store dina settings.

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

Den här koden skapar helt enkelt en new funktion wpb_get_parent_terms(). Som standard kommer denna funktion endast att visa parent kategorier.

Därefter måste du placera den här funktionen i dina WordPress temafiler där du vill visa den överordnade kategorin ensam.

För att ta reda på vilken mallfil du ska titta på, se vår WordPress mall-hierarki fusklista för nybörjare.

I grund och botten kommer du att leta efter the_category(); template taggen inuti WordPress-loopen. När du har hittat den, måste du ersätta den med följande kod:

<?php wpb_get_parent_terms(); ?> 

Denna kod kommer endast att displayed your parent category.

Om du har flera kategorier som är parent- eller fristående kategorier kommer alla sådana kategorier också att visas.

Only parent category displayed

Code snippet kommer att fungera för alla andra taxonomier också. Till exempel WooCommerce produktkategorier eller någon custom taxonomi som du kan ha.

Ändra helt enkelt koden så här:

<?php wpb_get_parent_terms( 'product_cat '); ?>

Denna kod kommer att visa produktkategorier för en WooCommerce store.

Det kommer också bara att visa de överordnade eller fristående kategorierna för en produkt.

Only parent product category displayed

Om du vill visa en custom taxonomi ersätter du product_cat med namnet på din custom taxonomi.

Expertguider om hur du visar kategorier i WordPress

Nu när du vet hur du bara visar den överordnade kategorin för dina WordPress-poster kanske du gillar att se några andra guider relaterade till att visa kategorier i WordPress:

Vi hoppas att den här artikeln hjälpte dig att lära dig hur du endast visar den överordnade kategorin för dina WordPress-poster. Du kanske också vill se vår guide om hur man visar customize-fält utanför loopen eller vårt expertval av den bästa AI-chatbotprogramvaran för din website.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Avslöjande: Vårt innehåll stöds av våra läsare. Det innebär att om du klickar på några av våra länkar, kan vi tjäna en provision. Se hur WPBeginner finansieras, varför det är viktigt, och hur du kan stödja oss. Här är vår editoriala process.

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.

Den ultimata WordPress-verktygslådan

Få GRATIS tillgång till vår verktygslåda - en samling WordPress-relaterade produkter och resurser som varje professionell användare bör ha!

Reader Interactions

12 kommentarerLämna ett svar

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

    Awesome ! thks

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

  5. sathish

    very useful

  6. Kate M

    Didn’t work for me :(

  7. AselHora

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

Lämna ett svar

Tack för att du väljer att lämna en kommentar. Tänk på att alla kommentarer modereras enligt våra policy för kommentarer, och din e-postadress kommer INTE att publiceras. Vänligen använd INTE nyckelord i namnfältet. Låt oss ha en personlig och meningsfull konversation.