Pålitliga WordPress-handledningar, när du behöver dem som mest.
Nybörjarguide till WordPress
WPB Cup
25 miljoner+
Webbplatser som använder våra plugins
16+
År av WordPress-erfarenhet
3000+
WordPress-handledningar
av experter

Hur man visar underkategorier på kategorisidor i WordPress

På WPBeginner söker vi ständigt efter smartare sätt att förbättra navigeringen så att våra läsare enkelt kan hitta exakt vad de letar efter. En smidig surfupplevelse håller användarna engagerade och får dem att komma tillbaka för mer.

Lyckligtvis erbjuder WordPress en enkel lösning genom att låta dig organisera dina inlägg med kategorier och underkategorier. Att visa underkategorier direkt på dina kategorisidor kan avsevärt förbättra användarupplevelsen och effektivisera navigeringen på din webbplats.

I den här artikeln guidar vi dig genom hur du visar underkategorier på kategorisidor i WordPress. Vi ger dig nödvändiga kodavsnitt och steg-för-steg-instruktioner för att göra din webbplatsnavigering bättre än någonsin. Låt oss börja!

Visa underkategorier på kategorisidor i WordPress

Varför visa underkategorier på kategorisidor?

När du skriver inlägg för din WordPress-webbplats kan du optimera för sökmotorer och förbättra webbplatsnavigeringen genom att kategorisera innehåll korrekt. Detta kommer att ge mer trafik till din webbplats och göra det lättare för besökare att hitta det innehåll de letar efter.

På vissa webbplatser är det vettigt att använda underkategorier för att förenkla webbplatsens struktur.

Till exempel kan du ha en toppnivåkategori (förälder) som heter Sport. Du kan sedan ha underkategorier under Sport som heter NFL, NBA och MLB.

Exempel på hur man använder underkategorier i WordPress

När dina besökare klickar på kategorin Sport kommer de att se alla inlägg i kategorin Sport och dess underkategorier. De kommer dock inte att se listan över underkategorier. Det gör det svårt att filtrera ner till bara NFL- eller NBA-inlägg.

Att visa en lista över underkategorier på dina kategorisidor kan förbättra webbplatsnavigeringen. Det gäller särskilt om du väljer att dölja underkategorier i din webbplats kategorividget.

Visa endast toppnivåkategorier

Sedan kan till exempel besökare på din webbplats enkelt flytta från alla Sportinlägg till bara NFL. Ännu bättre, du kan fortsätta att visa samma underkategorier på NFL-sidan så att de enkelt kan växla från NFL till NBA.

Med det sagt, låt oss titta på hur man visar underkategorier på kategorisidor i WordPress.

Hur man visar underkategorier på kategorisidor i WordPress

För att visa underkategorier på dina kategoribearbetningssidor behöver du lägga till kod i dina temafiler. Om du behöver hjälp med att lägga till kod på din webbplats, hänvisa till vår nybörjarguide om hur man klistrar in kodavsnitt från webben i WordPress.

Det första du behöver göra är att gå in i din temas mapp och leta efter din kategoriarkivfil som heter category.php.

Om du inte ser den filen måste du skapa den. Duplicera helt enkelt archive.php och döp den till category.php.

Notera: Om ditt tema inte inkluderar category.php eller archive.php, använder du förmodligen ett WordPress-temaramverk och måste skapa category.php manuellt. En bra utgångspunkt för att lära dig hur du skapar arkivfiler är vår guide om hur man skapar anpassade arkivsidor i WordPress.

Lägg nu bara till följande kod i category.php precis före loopen:

<?php
if (is_category()) {
    $this_category = get_category($cat);
    }
    ?>
    <?php
    if($this_category->category_parent)
    $this_category = wp_list_categories('orderby=id&show_count=0
    &title_li=&use_desc_for_title=1&child_of='.$this_category->category_parent.
    "&echo=0"); else
    $this_category = wp_list_categories('orderby=id&depth=1&show_count=0
    &title_li=&use_desc_for_title=1&child_of='.$this_category->cat_ID.
    "&echo=0");
    if ($this_category) { ?> 
 
<ul>
<?php echo $this_category; ?>
 
</ul>
 
<?php } ?>
Lägg till kodavsnittet i category.php precis före loopen

Nu när du besöker en kategorisida kommer du att se en lista över underkategorier.

På vår demosida visar kategorisidan Sport länkar till underkategorierna NFL, NBA och MLB.

Förhandsgranskning av underkategorier på kategorisidan

När du klickar på NFL-länken tas du till NFL-underkategorisidan.

Här kan du fortfarande se länkarna till sportunderkategorierna, så du enkelt kan växla mellan olika typer av sporter. Detta kan verkligen förenkla navigeringen på din webbplats.

Förhandsgranskning av underkategorier på underkategorisida

Experthandledningar om kategorier och underkategorier i WordPress

Vi hoppas att den här handledningen hjälpte dig att lära dig hur du visar underkategorier på kategorisidor i WordPress. Du kanske också vill se några andra guider relaterade till att visa kategorier och underkategorier i WordPress:

Om du gillade den här artikeln, prenumerera då på vår YouTube-kanal för WordPress-videoguider. Du kan också hitta oss på Twitter och Facebook.

Upplysning: Vårt innehåll stöds av läsarna. 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 redaktionella process.

Det ultimata WordPress-verktyget

Få GRATIS tillgång till vår verktygslåda - en samling WordPress-relaterade produkter och resurser som alla proffs bör ha!

Läsarnas interaktioner

73 CommentsLeave a Reply

  1. Hej,

    Jag använder ett tema som inte innehåller filen category.php. Kategorier och inlägg visas via en archive.php som ligger i ett plugin-ramverk som medföljer detta tema.

    • Detta är ett problem som många stöter på när de inte tittar noga på vad deras tema erbjuder. Jag skulle rekommendera att välja ett annat tema och den här gången leta efter kategorier med lager, taggar, modifierbara menyer, blockredigerare och mobilanpassning. Många finns gratis och erbjuder dessa grundläggande funktioner. Det är mycket enklare att gå vidare och fortsätta förbättra din webbplats med ett tema som stöder den flexibilitet du söker, snarare än att justera ett tema som inte uppfyller dina behov direkt. Du kommer att fortsätta justera i framtiden, och det är inte roligt, lita på mig!!

      Den här webbplatsen har inlägg om responsiva teman och de funktioner de erbjuder, och efter att du har valt ett bättre tema finns här länken för att byta ut det. Det är en mycket enkel process.
      https://www.wpbeginner.com/beginners-guide/how-to-properly-change-a-wordpress-theme/

  2. Jag klistrade in den här koden i min category.php-fil, men när jag går till mysite.com/category visas den inte. Några förslag?

    • Du vill säkerställa att koden är före loopen i din category.php och om den är placerad där korrekt, vill du sedan kontrollera med supporten för ditt specifika tema för att se om de har något som skulle åsidosätta den vanliga visningen.

      Admin

  3. Jag infogade denna kod via Code Snippets-pluginet, vilket har fungerat framgångsrikt med att infoga annan kod, men nu har jag det jag upptäckte kallas 'white screen of death'! Även på min webbplats sida som slutar med /wp-admin.

    Vet någon hur man fixar detta när jag inte kan se min admin-instrumentpanel?

  4. den här koden fungerar inte exakt som jag vill, jag vill ha en korrekt arrangemang av kategorier som navigering.
    Överordnad kategori
    Barnbarn 1
    Barnbarn 2
    underbarn 1
    Syskonkategorier

  5. Hej,

    Hur kan vi använda detta för anpassad inläggstaxonomi som skapats?

    Jag vill lista huvudkategorierna först sedan underkategorier och under osv.. tills man når inläggssidor?

    Kan vi ändra den här koden för anpassade inläggskategorier?

    Tack

  6. Men, inte för att dölja föräldrakategorin, när jag klickar på en underkategorisida. Jag vill visa alla underkategorier i föräldrakategorin såväl som i underkategorin också.

  7. Tack för detta utmärkta inlägg. Jag har lyckats skapa ett filter för min kategorisida med den här koden. Men jag skulle vilja ha en länk för att visa alla inlägg i huvudkategorin; om man klickade på en av länkarna för underkategorifilter och vill gå tillbaka för att se alla inlägg för huvudkategorin. Ungefär så här:
    Alla (20) Underkategori 1 (12) Underkategori 2 (5). Underkategori 3 (3)

    Är det möjligt? Och hur kan jag få numret som en del av länken?

  8. Hej

    Jag kan inget om kodning. Jag skulle verkligen vilja lägga till underkategorier till min WordPress-blogg så att jag kan organisera mitt innehåll bättre. Var klistrar jag in den här koden för att den ska fungera? Vad kommer exakt att hända? Jag skulle vilja förstå detta lite mer om du kan hjälpa till.

  9. Jag vet att det här är ett gammalt inlägg men det är precis vad jag letar efter för ett aktuellt projekt.
    Finns det något sätt att få en bild att visas med kategorin.
    Jag har använt det här pluginet tidigare för att lägga till en bild i en kategori – Categories Images

    <?php if( function_exists('z_taxonomy_image') AND get_option('z_taxonomy_image'.$cat_id)” ) z_taxonomy_image($cat_id); ?>

    Jag är bara inte säker på hur jag ska implementera det med din kod.

  10. Hej,

    Tack för koden.

    Jag har en kategoristruktur som:

    Huvudkategori: Hemförbättring
    Underkategori: Tak
    Grand Category: Rännor

    På den här sidan: Jag vill visa alla underkategorier, vilket är bra, det visar alla.

    På den här sidan: Jag vill visa alla barnbarnskategorier, men den visar alla barnkategorier.

    På den här sidan: Jag vill inte visa något, eftersom detta är den sista

    Vänligen meddela mig hur jag fixar det.

    Jag använde din kod så här:

    category_parent)
    $this_category = wp_list_categories(‘orderby=id&show_count=0&hide_empty=0&title_li=&use_desc_for_title=1&child_of=’.$this_category->category_parent.
    “&echo=0”); else
    $this_category = wp_list_categories(‘orderby=id&depth=1&show_count=0&hide_empty=0&title_li=&use_desc_for_title=1&child_of=’.$this_category->cat_ID.
    “&echo=0”);
    if ($this_category) { ?>

  11. Kalla mig dum men var placerar vi den här koden, i header.php, index.php. functions.php?

    FYI Jag har en sida där de klickar på en bild på huvudsidan och det tar dem (för närvarande) till en huvudkategori.

    mitt mål är att när de klickar på bilden ska de tas till en sida som listar underkategorierna för kategorin, detta kommer att möjliggöra sortering av inläggen!

  12. är det möjligt att visa inlägg på kategorisidor som underkategorivis med hjälp av detta.

    Exempel:

    ** Huvudkategorisida **

    ** Underkategori #1 **
    – Inlägg #1
    – Inlägg #2

    ** Underkategori #2 **
    – Inlägg #3
    – Inlägg #4

  13. Sedan wp 4.0 får jag följande felmeddelande om debug är sant:

    Notice: get_all_category_ids är inte längre i bruk sedan version 4.0! Använd istället get_terms(). i

    Detta är det holländska felet, på engelska står det att det är föråldrat. Hur kan koden justeras så att den fungerar med den nya standarden?

  14. Tack för detta, men att ändra argumentet orderby verkar inte ha någon inverkan på den faktiska visade ordningen. Har någon annan haft ett liknande problem? Några lösningar?

  15. Tack för detta hjälpsamma inlägg.
    Jag behöver exkludera några av kategorierna, så att de inte visas. Hur kan jag göra det?

  16. Hej

    Jag behöver lite hjälp med skriptet ovan. Jag har en kategorilista med länder som USA, Storbritannien, Italien, Frankrike etc. och varje land kommer att ha städer som underkategorier.
    Det här skriptet fungerar utmärkt, när jag klickar på Italien visas städernas underkategorier i sidofältet, men när jag klickar på en sida eller inuti ett inlägg försvinner städerna och bara landet visas i sidofältet.
    Hur kan jag ändra det så att när jag klickar på ett inlägg inuti städerna finns kvar och när jag klickar på en sida som Om eller Hem försvinner städerna? Jag använder också Hueman-temat och jag behöver att städerna visas i sidhuvudmenyn. Hur mycket tar du för det? Skicka ett e-postmeddelande till mig på kid_punky @ yahoo.com

  17. jag använder jigoshop-plugin för e-handelskläder
    i jigoshop-kategorin lägg till
    MAN
    WOMAN
    BOYS
    OTHER
    den har också underkategorier
    jag vill visa huvudkategorin i sidofältet och när man klickar på kategorin ska underkategorin visas;

    • Mitul, för CSS kan du se det i källkoden, lek gärna med den. Du kan använda villkorliga taggar i din mall för att visa dina underkategorier annorlunda eller så kan du skapa en ny mall för underkategorin.

      Admin

  18. Hej,
    Jag använder din kod med framgång, och tack för det.
    Jag har lite problem: Jag tog bort "depth=1" från koden men huvudkategorin visas inte i sidofältet. Endast underkategorier.
    Hur kan jag visa både föräldrakategorin och underkategorierna?
    Tack.

  19. Hej. Kommer detta att fungera med WordPress 3.3.1?

    Dessutom kan den här frågan verka dum, men jag vill dubbelkolla:

    Den här koden kommer att tillåta underkategorier som är specifika för kategorisidan du befinner dig på att visas i sidofältet, korrekt? Uttryckt på ett annat sätt: Jag är på startsidan. Jag klickar på huvudnavigeringen som säger "Illinois". Det tar mig till en (kategori) arkivsida för Illinois, som har ett sidofält. I det sidofältet finns: Chicago, Evanston, Skokie (underkategorier). Nu, om jag klickar på "New York" i huvudnavigeringen, skulle jag gå till en (kategori) arkivsida för New York, och i den högra kolumnen för den sidan skulle finnas: NYC, Albany, Buffalo, Rochester.

    Har jag rätt, eller missförstår jag applikationen?

    Tack så mycket!

  20. kommentaren har inte publicerats korrekt ... så jag lägger den igen:

    Huvudkategori

    Underkategori-1, Underkategori-2, Underkategori-3, Underkategori-4, Underkategori-5,

    Underkategori-6, Underkategori-7, och så vidare ………….

  21. Jag vill visa en lista över underkategorier på huvudsakliga kategoris arkivsida, till exempel:

    <Huvudkategori>

    <underkategori-1>, <underkategori-2>, <underkategori-3>, <underkategori-4>, <underkategori-5>, <underkategori-6>, och så vidare ...

    Jag har kopierat samma kod som anges i den här artikeln, men den fungerar inte... ingenting visas på kategorisidan.

    Snälla hjälp.

  22. Hej, jag hoppas att det finns en lösning på det jag försöker göra eftersom jag inte verkar kunna hitta en lösning någonstans.

    vad jag har är flera underkategorier under en huvudkategori. men kategorierna på andra nivån är inte underkategorier till huvudkategorin. endast underkategorierna under andra nivån är barn. men jag vill fortfarande inkludera loopen av dessa kategorier på huvudkategorin, men i grund och botten kommer den aldrig att ha ett inlägg eller ett barn. Jag lyckades hitta filtret för att visa en loop av kategorierna under den, men sidan visas bara om det finns ett inlägg i den kategorin...

    LOL, allt detta låter ganska komplicerat när jag säger det högt haha… Jag hoppas du förstår vad jag pratar om.

    Kort sagt vill jag att kategorisidan ska visas även utan några inlägg under den. Jag använder ett anpassat tema och mallfiler för varje kategori.

    Hope someone has the answer. :)

    Skål

    • @robolist Vad är poängen med att ha en kategori utan inlägg under sig? Det verkar som om den inte ens borde finnas där. Kanske du vill utveckla, så att vi kan se vad du gör med den kategorin. Kanske en alternativ väg bör tas.

      • @wpbeginner thanks for getting back so fast :)

        ok så anledningen är att jag inte vill att huvudkategorin ska visas i URL-strukturen. även om den slutliga URL:en för inlägget kommer att vara annorlunda. Huvudkategorin kommer att vara något i stil med 'destinations' sedan under den kommer det att finnas länder. med varje land som har en barnstad sedan inlägg under staden. så huvudmenyn kommer att visa 'destinations' med en loop av alla inlägg under den. sedan under den i undermenyn kommer landet sedan staden att vara. med både land och stad som innehåller en loop av sina respektive inlägg. så när du kommer till stadens landningssida vill jag inte att URL:en ska vara '.com/destinations/country/city/' jag vill att den ska vara '.com/country/city/'

        Ser du mitt dilemma?

        • @robolist Det verkar finnas ett bättre sätt. Skulle det inte vara mer logiskt att helt eliminera destinationskategorin. Skapa en sida som heter Destinationer – använd en anpassad sidmall för att visa alla kategorier som WordPress har med funktionen wp_list_categories(). Nu kommer du fortfarande att ha URL:er som .com/land/stad/ Och när användaren går till en sida som .com/destinationer/ << De kan fortfarande se alla länder som listas där. Ger det mening? Om inte, kanske vi inte förstår vad du försöker göra.

        • @wpbeginner that does sound better and makes sense… But i am not familiar with the wp_list_categories() function, although i have seen it around. This could be the one. thanks so much for your help, i will go and give that a try :) thanks so much…

          tack också för alla dina fantastiska handledningar på den här webbplatsen...

        • @robolist wp_list_categories() är en mycket enkel och kraftfull funktion. http://codex.wordpress.org/Template_Tags/wp_list_categoriesIt låter dig visa dina kategorier var som helst i en anpassad sidmall. https://www.wpbeginner.com/wp-themes/how-to-create-a-custom-page-in-wordpress/ Så skapa en anpassad sidmall. I mallområdet klistra in koden wp_list_categories(); Se till att ställa in child=0 om du inte vill visa dina städer där. Som jag förmodar, vill du bara visa länderna där. Sedan när en användare klickar på ett land, går de och ser alla städer. Styla det efter eget tycke och där har du det.

        • @wpbeginner

          hey guys, thanks so much for your advice last night, it worked a treat :). I am however stuck on the permalink structure now and would be very grateful if you and any tips for me again :)

          Mitt sista inlägg ligger nu i slutet av en tre-nivåers kategoristruktur, ‘kontinent/land/stad/inlägg/’ (destinationer som du rekommenderade är nu en sida). Men för inläggets slutliga URL vill jag inte att den ska vara fyra nivåer djup och föredrar att den bara är tre nivåer djup. så den permalänk jag skulle vilja ha är land/stad/inlägg/… Finns det något sätt jag kan ta bort den översta föräldrakategorin från permalänkstrukturen? för tillfället har jag ställt in det så här ‘/%category%/%postname%-%post_id%/’ Men den tar automatiskt med alla föräldrakategorier. , Måste jag igen göra den översta kategorin till en sida eller finns det ett bättre sätt att lösa detta? Tack på förhand för din hjälp

          Skål

        • @robolist Du kan skriva några permalänk-omskrivningsregler, men det är lite svårare än att göra toppkategorin till en sida. Enkel lösning: gör kontinent till en sida. Svår lösning: skriv om permalänk-regler. Ärligt talat, behöver du kontinenter? de flesta tittar inte efter Nordamerika eller Sydamerika... De letar bara efter länder...

        • @wpbeginner Tack för att du svarade.

          Att ha kontinenter hjälper till att organisera bloggen eftersom den till slut blir ganska stor, det är mer som regioner egentligen, inte exakt kontinenter, vilket är anledningen till att jag skulle föredra att inkludera dem. Jag skulle älska att lära mig hur man gör omskrivningsregeln eftersom jag då inte behöver lägga till extra kategorier-ID:n till regionsidorna varje gång en ny stad/land läggs till. Sättet jag har det inställt med destinationerna är perfekt eftersom jag aldrig kommer att lägga till fler regioner så jag behöver aldrig röra den sidan igen :), som det står finns det 9 regioner, det är allt., men länder och städer kommer att läggas till över tid

          i dont suppose you could point me in the right direction for the rewrite? :) I would be ever so grateful

          Tack så mycket för all hjälp hittills

        • @robolist Omskrivning kräver att man skriver anpassad kod och det är något vi tar betalt för. Du kan söka på Google som vägledning eller titta i WordPress kärna om du gillar att arbeta med kod.

        • @wpbeginner I would love to hire you guys but just dont have a budget for that :(, plus i would love to learn how to do it myself. but thanks so much for all the help you have given me on this. if i do fail at my attempt then i will just go for the simple way out and create pages for the regions. thanks again :)

  23. Fick du någonsin detta? Jag försöker uppnå samma sak just nu. Visa bara underkategorier på kategorisidor om det finns underkategorier. Det där "inga kategorier" dödar mig.

  24. Hej! Ursäkta min engelska.

    Jag skulle vilja använda din kod, men inte i sidofältet. När jag klickar på en huvudkategori vill jag hitta undermenyn i navigeringsfältet istället för att ha huvudmenyn.

    Tyvärr, men jag är inte utvecklare, var ska jag klistra in din kod?

    In category.php ? :(

    Tack

  25. Koden är inte klar.

    «…
    if ($this_category) {
    //Det måste finnas en kod
    //för att visa listan med underkategorier.
    }?>
    …»

    Något i stil med detta:
    if ($this_category) {
    printf( $this_category );
    }

    P.S. arbetar på «Twenty Ten» 3.0.1

  26. Jag har hört att den här koden inte längre fungerar sedan WP-uppgraderingen. Jag fick också ett parsningsfel.

  27. Hej,
    Den här koden är precis vad jag behöver, bara att jag vill använda den i själva category.php-innehållssektionen, inte i sidofältet. Hur som helst, jag klistrade in den och fick ett parsningsfel. Saknas det något i slutet av kodavsnittet?
    Tack.
    -Rachel

  28. Detta är en bra utgångspunkt för mig eftersom jag har letat högt och lågt efter detta.

    Jag undrade om det fanns ett sätt att utveckla detta och tillåta till exempel, 1 inläggstitel och utdrag sedan 4 fler titlar från varje underkategori, visade i en div.

    I have been trying to find a way to do this for months but have never found anyone able to assist. I even offered a small payment but no-one came forward :)

    Thanks if anyone can offer any advice :)

    Karl

  29. Hej, tack så mycket för den här koden och jag har den fungerande på min mall. Hur skulle jag förhindra att hela den här koden körs om en kategori INTE har några barn? Om det inte finns några barn skapas en tom lista och texten "Inga kategorier" skrivs ut. Så här hade jag satt upp det med Yoasts kod:

    cat_ID) != "") { ?>

    Underkategorier:
    cat_ID);?>



    Om det inte fanns några underkategorier skulle ingenting visas. Din kod är bättre, men jag behöver att den bara visas OM det finns underkategorier. Hur skulle jag uppnå detta? Tack för alla förslag.

  30. Tack för att du postade detta. Jag fick mina inlägg att visas bra, men hade glömt bort underkategorierna... det är mer logiskt på det här sättet.

  31. Hej,

    Jag försöker uppnå detta i sidofältet, bara istället för länkar vill jag lista de senaste inläggen i underkategorier.

    och naturligtvis skulle detta ske på alla kategori- och underkategorisidor, liksom enskilda inlägg.

    Vet inte om det här är möjligt. Men jag har letat som en galning, och att inte vara programmerare hjälper inte heller.

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år kommentarspolicy, och din e-postadress kommer INTE att publiceras. Använd INTE nyckelord i namn fältet. Låt oss ha en personlig och meningsfull konversation.