Skip to content

Allt om WordPress, webbutveckling — och mer därtill

🔒 Hur du döljer en kategori i WordPress: 4 metoder steg för steg

🔒 Hur du döljer en kategori i WordPress: 4 metoder steg för steg

WordPress startsida visar som standard allt: inlägg från alla skapade kategorier blandas i ett enda flöde. För en blogg är detta normalt. Men om du lanserar en webbutik, en portfölj eller en företagssajt hör vissa kategorier helt enkelt inte hemma på startsidan.

Värre är att sökmotorernas robotar indexerar allt, inklusive service- och utkastkategorier. Resultatet: dubblettsidor i sökresultaten, ett utspätt index och sjunkande rankning. Och en besökare som snubblar in på en stängd sektion får en tom sida istället för innehåll.

Som tur är kan du dölja en kategori i WordPress på 5-10 minuter, och du behöver ingen utvecklare för det. Nedan följer fyra fungerande metoder: från ett plugin som tar två klick till ren kod i functions.php. Välj den som passar din uppgift.

💡 Snabb översikt:

  • Installera Ultimate Category Excluder och markera kategorier som ska döljas.
  • Konfigurera WP Categories Widget för selektiv döljning i sidofältet.
  • Lägg till pre_get_posts-kroken i functions.php och exkludera kategorin via ID.
  • Använd Members-pluginet med ett kodsnutt för att dölja efter användarroll.

Varför dölja kategorier överhuvudtaget?

WordPress gör ingen skillnad på en "publik" och en "teknisk" kategori. Allt du skapat under "Inlägg → Kategorier" visas automatiskt i huvudflödet och arkiven. I vissa fall är detta praktiskt, i andra skapar det problem:

  • Servicekategorier (till exempel "Utkast" eller "För redaktörer") indexeras och dyker upp i sökresultat.
  • Kategorier med gammalt eller inaktuellt innehåll späder ut sajtens intryck.
  • Stängda sektioner (premiumartiklar, kundmaterial) blir synliga för alla besökare.

Viktig punkt: försök inte lösa problemet med CSS. display: none döljer kategorin visuellt, men sökmotorer ser fortfarande innehållet och kan behandla det som cloaking. En bestraffning från Google är i sådana fall nästan garanterad. Rätt sätt är att exkludera kategorin på databasfrågenivå, inte maskera den med stilar.

Metod 1. Ultimate Category Excluder, dölj en kategori på en minut

Den enklaste och mest pålitliga metoden är pluginet Ultimate Category Excluder. I juni 2026 har det 50 000+ aktiva installationer, betyget 4,2/5 och kompatibilitet med WordPress 6.5+. Utvecklaren uppdaterar pluginet regelbundet, med den senaste versionen i december 2025.

Installerar Ultimate Category Excluder-tillägget från WordPress-panelen

Steg för steg:

  • Gå i WordPress-panelen till Tillägg → Lägg till nytt.
  • Skriv "Ultimate Category Excluder" i sökfältet, klicka på Installera och sedan Aktivera.
  • Efter aktivering dyker ett Category Exclusion-menyalternativ upp under "Inställningar", gå dit.
  • Markera kryssrutorna för de kategorier du behöver dölja från startsidan, arkiv, RSS-flöde och sökning.
  • Klicka på Uppdatera.
Markerar kategorier som ska döljas i Ultimate Category Excluder

Klart. Öppna din sajt i inkognitoläge och kontrollera att inlägg från de markerade kategorierna har försvunnit från startsidan. Pluginet fungerar på WP_Query-nivå: det modifierar databasfrågan, inte genom att dölja block via CSS. Därför är detta helt säkert för SEO.

Fördelar: noll kod, passar nybörjare, selektiv exkludering (startsida, arkiv, RSS, separat). Nackdelar: om du behöver dölja en kategori endast i en specifik widget hjälper inte detta plugin, för det finns ett mer precist verktyg.

Metod 2. WP Categories Widget, dölj en kategori i en widget

Om din uppgift är snävare, att ta bort en specifik kategori från sidofältet eller sidfoten snarare än från hela sajten, använd WP Categories Widget. I februari 2026 har pluginet version 2.8.1, full kompatibilitet med aktuell WordPress och 3 000+ aktiva installationer.

Vad det kan göra:

  • Visa kategorier från valfri taxonomi (inte bara standardkategorier, utan även taggar och anpassade taxonomier).
  • Dölj widgetens titel.
  • Aktivera eller inaktivera inläggsräknaren för varje kategori.
  • Visa eller dölj valfria kategorier direkt från widgetens inställningar.

Så här använder du den:

  • Installera och aktivera pluginet via Plugins → Lägg till nytt.
  • Gå till Utseende → Widgetar.
  • Leta reda på widgeten "WP Categories Widget" och dra den till önskad yta (sidofält, sidfot).
Drar WP Categories Widget till WordPress sidopanel
  • I widgetens inställningar anger du en titel och döljer den om så önskas. I rullgardinsmenyn "Visa" väljer du Alla kategorier eller anger specifika kategorier som ska visas.
Väljer kategorier att dölja i WP Categories Widget-inställningar
  • Spara dina ändringar.

Allt som inte finns med i listan över "visade" kategorier döljs automatiskt från denna widget. Observera: pluginet styr synligheten endast inom sin egen widget. Det påverkar inte startsidans flöde eller arkiv, för det går du tillbaka till metod 1.

Metod 3. pre_get_posts-kroken, dölj en kategori via kod

Om du inte vill installera ett extra plugin för en enda funktion kan du klara dig med ett par rader i functions.php. Denna metod modifierar den huvudsakliga WordPress-loopen innan frågan körs, kategorin exkluderas på databasnivå, inte maskerad.

Viktigt: innan du redigerar functions.php, gör en fullständig säkerhetskopia av webbplatsen. Ett fel i denna fil kan krascha hela webbplatsen, och att återställa den utan en säkerhetskopia blir svårt.

Här är ett fungerande kodsnutt. Den använder pre_get_posts-kroken och anger vilken kategori som ska exkluderas från startsidan:

1/**
2 * Excludes the specified category from the home page.
3 * Replace -5 with your category ID (with a minus sign).
4 */
5function sdstudio_exclude_category_from_home( $query ) {
6 if ( ! is_admin() && $query->is_home() && $query->is_main_query() ) {
7 $query->set( 'cat', '-5' );
8 }
9 return $query;
10}
11add_action( 'pre_get_posts', 'sdstudio_exclude_category_from_home' );

På raden 'cat', '-5' är siffran 5 identifieraren för den kategori du behöver dölja. Minustecknet betyder "exkludera". Så här hittar du ID:t för den önskade kategorin:

  • Öppna Inlägg → Kategorier i WordPress-panelen.
  • För muspekaren över kategorinamnet.
  • Längst ner på skärmen (i webbläsarens statusfält) visas en URL som ...taxonomy=category&tag_ID=6, siffran efter tag_ID= är ID:t.
Visar kategori-ID genom att hovra över kategorinamnet i WordPress admin

I skärmbilden är ID:t för kategorin "Länder" 6. Byt ut mot ditt eget nummer, spara filen, så försvinner inlägg från denna kategori från startsidan.

Var koden ska placeras:

  • Via FTP: anslut till servern, gå till /wp-content/themes/your-theme/, ladda ner functions.php, lägg till koden i slutet av filen (före ?> om den finns) och ladda upp den igen.
  • Via adminpanelen: öppna Utseende → Temaredigerare, välj det aktiva temat, hitta functions.php i den högra kolumnen, infoga koden och klicka på "Uppdatera fil".
Redigerar functions.php-filen via WordPress temaredigerare

Vissa webbhotell blockerar åtkomsten till temaredigeraren av säkerhetsskäl. Använd i så fall endast FTP, eller gå tillbaka till pluginet från metod 1, det löser uppgiften utan tillgång till filer.

Vad som har förbättrats jämfört med originalreceptet från gamla guider: kontrollen ! is_admin() har lagts till (för att inte förstöra adminpanelen) och $query->is_main_query() (för att inte påverka sekundära frågor från widgetar och menyer). Utan dessa kontroller kan koden förstöra filtreringen i adminpanelen eller förstöra menyutmatningen, verifierat i praktiken.

Metod 4. Dölja kategorier baserat på användarroll

Tänk dig den här situationen: du har premiumartiklar som bara är tillgängliga för betalande prenumeranter. Eller intern dokumentation för anställda. Eller en stängd avdelning för återförsäljare. Vanliga metoder döljer kategorin för alla, men här behöver du att administratören och privilegierade användare ser den, medan gäster och vanliga prenumeranter inte gör det.

Tidigare användes tillägget CaPa Protect för den här uppgiften, men det har tagits bort från WordPress arkiv. Det ersattes av en kraftfullare kombination: tillägget Members (300 000+ installationer, 4,7/5 i betyg, version 3.2.22 i juni 2026) och en liten kodsnutt.

Members-tillägget, hanterar roller och behörigheter i WordPress

Så här gör du:

  • Installera och aktivera Members via "Tillägg → Lägg till nytt".
  • Gå till Användare → Roller. Skapa en roll, till exempel "Premiumprenumerant", eller använd befintliga.
  • Tilldela den här rollen till de användare som behöver den.
  • Lägg till en kodsnutt i functions.php som kontrollerar den aktuella användarens roll och exkluderar kategorin för alla utom de som tillåts:
1/**
2 * Hides category with ID 5 from everyone except administrators
3 * and users with the premium_subscriber role.
4 */
5function sdstudio_hide_category_by_role( $query ) {
6 if ( is_admin() || ! $query->is_main_query() ) {
7 return $query;
8 }
9
10 $restricted_cat_id = 5; // replace with your category ID
11
12 if ( current_user_can( 'administrator' )
13 || current_user_can( 'premium_subscriber' ) ) {
14 return $query;
15 }
16
17 $query->set( 'cat', '-' . $restricted_cat_id );
18 return $query;
19}
20add_action( 'pre_get_posts', 'sdstudio_hide_category_by_role' );

Så här fungerar det: funktionen kontrollerar den aktuella användarens roll via current_user_can(). Administratörer och premiumprenumeranter passerar filtret, för dem är kategorin synlig. Alla andra får en modifierad fråga där kategorin exkluderas. Samma pre_get_posts-hook, men kopplad till behörigheter, inte till sidan.

Fördelen med Members är att det inte bara är en "kategori-workaround", utan en fullfjädrad roll- och behörighetsredigerare. Efter installationen kan du styra synligheten för alla sajtelement: Gutenberg-block, sidor, menyalternativ, allt via roller.

Videoguide

Se en visuell genomgång av alla fyra metoder, från installation av tillägget till redigering av kod:

⁉️🤔 Vanliga frågor

Varför kan jag inte bara dölja kategorin med CSS?

display: none tar bort blocket visuellt, men sökmotorernas bottar läser fortfarande innehållet. Google betraktar en sådan diskrepans mellan synligt och indexerbart innehåll som ett försök till manipulation (cloaking). Påföljden är manuell nedgradering eller att sidor exkluderas från indexet. Den korrekta lösningen är exkludering på WP_Query-nivå, inte CSS.

Hur döljer jag en kategori inte bara från startsidan, utan även från RSS-flödet?

Ultimate Category Excluder (metod 1) kan göra detta direkt. I tilläggets inställningar på fliken "Category Exclusion" markerar du de kategorier som behövs och kryssar i rutan bredvid "RSS Feeds". Om du arbetar via kod (metod 3), ersätt villkoret $query->is_home() med $query->is_home() || $query->is_feed(), så försvinner kategorin även från flödet.

Vad händer med SEO efter att jag dolt en kategori?

Om du dolt kategorin korrekt (via tillägg eller pre_get_posts) förblir själva kategorisidorna och deras inlägg tillgängliga via direkta webbadresser och indexeras. Endast startsidan och arkiven ändras, dubbletter försvinner och användbart innehåll stannar kvar i indexet. För att vara säker, skicka in webbplatskartan i Google Search Console för ny genomsökning efter att du gjort ändringarna.

Kan jag dölja en kategori för en specifik användare, inte för en roll?

WordPress har inga inbyggda verktyg för detta. Metod 4 är utformad specifikt för roller, detta är en arkitektonisk begränsning i behörighetssystemet. Som en workaround kan du skapa en separat roll för en specifik användare via Members och tillämpa koden från metod 4. Tekniskt sett är detta två klick i tilläggets gränssnitt.

Tillägg eller kod, vad ska man välja för långsiktigt underhåll av sajten?

Beror på antalet redigeringar. Dölja en kategori en gång, kod i functions.php (metod 3) är lättare och lägger inte till extra belastning. Flera kategorier med olika villkor (startsida, RSS, sökning), Ultimate Category Excluder (metod 1) är enklare att hantera. Huvudregeln: installera inte ett tillägg för en kryssruta som kan lösas med tre rader kod.

Vad du ska välja för din uppgift

De fyra metoderna täcker alla verkliga scenarier. En enkel matris hjälper dig att navigera:

  • Behöver det snabbt och utan kod → Ultimate Category Excluder. Ett par klick, omedelbart resultat, passar de flesta typiska sajter.
  • Kategorin är bara i vägen i sidofältet → WP Categories Widget. En riktad lösning utan sidoeffekter.
  • Sajten har redan ett minimum av tillägg, vill hålla den lättpre_get_posts-hook i functions.php. Tre rader PHP, noll extra kod.
  • Innehåll med åtkomstbegränsningar per roll → Members + kodsnutt från metod 4. Ett flexibelt behörighetssystem som är användbart även för andra uppgifter.

Testa den metod som ligger närmast din situation. Om något går fel, gå tillbaka till säkerhetskopian (du gjorde en, eller hur?) och prova nästa. Och berätta i kommentarerna vilken metod som fungerade för dig och vilken typ av projekt du dolde kategorier för.