
🔒 Kuinka piilottaa kategoria WordPressissä: 4 menetelmää vaihe vaiheelta
WordPressin kotisivu näyttää oletuksena kaiken: kaikkien luotujen kategorioiden julkaisut sekoittuvat yhdeksi syötteeksi. Blogille tämä on normaalia. Mutta jos olet käynnistämässä verkkokauppaa, portfoliota tai yrityssivustoa, jotkin kategoriat eivät yksinkertaisesti kuulu kotisivulle.
Pahempaa on, että hakukonebotit indeksoivat kaiken, mukaan lukien palvelu- ja luonnoskategoriat. Lopputulos: päällekkäisiä sivuja hakutuloksissa, laimentunut indeksi ja putoavat sijoitukset. Ja kävijä, joka eksyy suljettuun osioon, saa sisällön sijaan tyhjän sivun.
Onneksi voit piilottaa kategorian WordPressissä 5-10 minuutissa, etkä tarvitse siihen kehittäjää. Alla on neljä toimivaa tapaa: kahden klikkauksen lisäosasta siistiin koodiin functions.php-tiedostossa. Valitse se, joka sopii tehtävääsi.
💡 Pikakatsaus:
- Asenna Ultimate Category Excluder ja merkitse piilotettavat kategoriat.
- Määritä WP Categories Widget valikoivaa piilotusta varten sivupalkissa.
- Lisää pre_get_posts-koukku functions.php-tiedostoon ja sulje kategoria pois ID:n perusteella.
- Käytä Members-lisäosaa ja koodinpätkää piilottaaksesi kategoriat käyttäjäroolien mukaan.
Miksi kategorioita ylipäätään piilotetaan?
WordPress ei tee eroa "julkisen" ja "teknisen" kategorian välillä. Kaikki, mitä loit kohdassa "Artikkelit → Kategoriat", ilmestyy automaattisesti pääsyötteeseen ja arkistoihin. Joissain tapauksissa tämä on kätevää, toisissa se aiheuttaa ongelmia:
- Palvelukategoriat (esimerkiksi "Luonnokset" tai "Toimittajille") indeksoituvat ja näkyvät haussa.
- Kategoriat, joissa on vanhaa tai vanhentunutta sisältöä, laimentavat sivuston vaikutelmaa.
- Suljetut osiot (premium-artikkelit, asiakasmateriaalit) tulevat näkyviin kaikille kävijöille.
Tärkeä huomio: älä yritä ratkaista ongelmaa CSS:n avulla. display: none piilottaa kategorian visuaalisesti, mutta hakukoneet näkevät sisällön yhä ja saattavat tulkita sen harhaanjohtavaksi sisällöksi (cloaking). Googlelta tuleva rangaistus on tällaisissa tapauksissa lähes taattu. Oikea tapa on sulkea kategoria pois tietokantakyselyn tasolla, ei peittää sitä tyyleillä.
Tapa 1. Ultimate Category Excluder, piilota kategoria minuutissa
Yksinkertaisin ja luotettavin tapa on Ultimate Category Excluder -lisäosa. Kesäkuussa 2026 sillä on yli 50 000 aktiivista asennusta, arvosana 4,2/5 ja yhteensopivuus WordPress 6.5+ -version kanssa. Kehittäjä päivittää lisäosaa johdonmukaisesti, viimeisin julkaisu oli joulukuussa 2025.

Vaihe vaiheelta:
- Siirry WordPress-hallintapaneelissa kohtaan Lisäosat → Lisää uusi.
- Kirjoita hakukenttään "Ultimate Category Excluder", napsauta Asenna ja sitten Ota käyttöön.
- Aktivoinnin jälkeen Asetukset-valikkoon ilmestyy Category Exclusion -kohta, siirry sinne.
- Valitse valintaruudut niille kategorioille, jotka haluat piilottaa kotisivulta, arkistoista, RSS-syötteestä ja hausta.
- Napsauta Päivitä.

Valmista. Avaa sivustosi incognito-tilassa ja varmista, että merkittyjen kategorioiden julkaisut ovat kadonneet kotisivulta. Lisäosa toimii WP_Query-tasolla: se muokkaa tietokantakyselyä, ei piilota lohkoja CSS:n avulla. Siksi tämä on SEO:n kannalta täysin turvallista.
Hyvät puolet: ei lainkaan koodia, sopii aloittelijoille, valikoiva poissulkeminen (koti, arkistot, RSS, erikseen). Huonot puolet: jos sinun täytyy piilottaa kategoria vain tietyssä vimpaimessa, tämä lisäosa ei auta, siihen on olemassa tarkempi työkalu.
Tapa 2. WP Categories Widget, piilota kategoria vimpaimessa
Jos tehtäväsi on suppeampi, tietyn kategorian poistaminen sivupalkista tai alatunnisteesta koko sivuston sijaan, käytä WP Categories Widget -lisäosaa. Helmikuussa 2026 lisäosan versio on 2.8.1, täysi yhteensopivuus nykyisen WordPressin kanssa ja yli 3 000 aktiivista asennusta.
Mitä se osaa tehdä:
- Näytä kategoriat mistä tahansa taksonomiasta (ei vain tavallisista kategorioista, vaan myös avainsanoista ja mukautetuista taksonomioista).
- Piilota vimpaimen otsikko.
- Ota käyttöön tai poista käytöstä artikkelilaskuri kullekin kategorialle.
- Näytä tai piilota valikoivasti mitä tahansa kategorioita suoraan vimpaimen asetuksista.
Näin käytät sitä:
- Asenna ja aktivoi lisäosa kohdasta Lisäosat → Lisää uusi.
- Siirry kohtaan Ulkoasu → Vimpaimet.
- Etsi "WP Categories Widget" -vimpain ja vedä se haluamallesi alueelle (sivupalkki, alatunniste).

- Aseta vimpaimen asetuksissa otsikko ja piilota se halutessasi. Valitse "Näytä"-pudotusvalikosta Kaikki kategoriat tai määritä tietyt kategoriat, jotka näytetään.

- Tallenna muutokset.
Kaikki, mikä ei sisälly "näytettävien" listaan, piilotetaan automaattisesti tästä vimpaimesta. Huomaa: lisäosa hallitsee näkyvyyttä vain oman vimpaimensa sisällä. Se ei vaikuta etusivun syötteeseen eikä arkistoihin, niitä varten palaa menetelmään 1.
Menetelmä 3. pre_get_posts-koukku, piilota kategoria koodilla
Jos et halua asentaa ylimääräistä lisäosaa yhtä toimintoa varten, pärjäät muutamalla rivillä functions.php-tiedostossa. Tämä menetelmä muokkaa WordPressin pääsilmukkaa ennen kyselyn suorittamista, kategoria suljetaan pois tietokantatasolla, ei peitetä.
Tärkeää: ennen kuin muokkaat functions.php-tiedostoa, tee täydellinen varmuuskopio sivustosta. Virhe tässä tiedostossa kaataa koko sivuston, ja sen palauttaminen ilman varmuuskopiota on vaikeaa.
Tässä on toimiva koodinpätkä. Se käyttää pre_get_posts-koukkua ja määrittää, mikä kategoria suljetaan pois etusivulta:
1 /** 2 * Excludes the specified category from the home page. 3 * Replace -5 with your category ID (with a minus sign). 4 */ 5 function 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 } 11 add_action( 'pre_get_posts', 'sdstudio_exclude_category_from_home' );
Rivillä 'cat', '-5' numero 5 on piilotettavan kategorian tunniste. Miinusmerkki tarkoittaa "pois sulkemista". Näin löydät tarvittavan kategorian tunnisteen:
- Avaa WordPressin hallintapaneelissa Artikkelit → Kategoriat.
- Vie hiiri kategorian nimen päälle.
- Näytön alareunaan (selaimen tilariville) ilmestyy URL-osoite, kuten
...taxonomy=category&tag_ID=6, jossatag_ID=-kohdan jälkeinen numero on tunniste.

Kuvakaappauksessa "Maat"-kategorian tunniste on 6. Korvaa tilalle oma numerosi, tallenna tiedosto, ja tämän kategorian artikkelit katoavat etusivulta.
Mihin koodi sijoitetaan:
- FTP:n kautta: yhdistä palvelimelle, siirry kansioon
/wp-content/themes/your-theme/, lataafunctions.php, lisää koodi tiedoston loppuun (ennen?>-merkintää, jos sellainen on) ja lataa tiedosto takaisin. - Hallintapaneelin kautta: avaa Ulkoasu → Teemaeditori, valitse aktiivinen teema, etsi
functions.phpoikeanpuoleisesta sarakkeesta, lisää koodi ja napsauta "Päivitä tiedosto".

Jotkut hosting-palveluntarjoajat estävät pääsyn teemaeditoriin tietoturvasyistä. Käytä tällöin vain FTP:tä tai palaa menetelmän 1 lisäosaan, se ratkaisee tehtävän ilman pääsyä tiedostoihin.
Mitä on parannettu verrattuna vanhojen oppaiden alkuperäiseen reseptiin: lisätty ! is_admin() -tarkistus (jotta hallintapaneeli ei hajoa) ja $query->is_main_query() (jotta vimpaimien ja valikoiden toissijaiset kyselyt eivät häiriinny). Ilman näitä tarkistuksia koodi voi rikkoa suodatuksen hallintapaneelissa tai rikkoa valikoiden tulostuksen, käytännössä todettu.
Tapa 4. Kategorioiden piilottaminen käyttäjäroolien mukaan
Kuvittele tilanne: sinulla on premium-artikkeleita, jotka ovat vain maksavien tilaajien saatavilla. Tai sisäistä dokumentaatiota työntekijöille. Tai suljettu osio tukkuasiakkaille. Tavalliset tavat piilottavat kategorian kaikilta, mutta tässä tarvitset, että ylläpitäjä ja etuoikeutetut käyttäjät näkevät sen, kun taas vieraat ja perustilaajat eivät.
Aiemmin tähän tehtävään käytettiin CaPa Protect -lisäosaa, mutta se on poistettu WordPressin lisäosavarastosta. Sen korvasi tehokkaampi yhdistelmä: Members -lisäosa (yli 300 000 asennusta, arvosana 4,7/5, versio 3.2.22 kesäkuussa 2026) ja pieni koodinpätkä.

Toimintatapa:
- Asenna ja aktivoi Members kohdasta "Lisäosat → Lisää uusi".
- Siirry kohtaan Käyttäjät → Roolit. Luo rooli, esimerkiksi "Premium-tilaaja", tai käytä olemassa olevia.
- Määritä tämä rooli tarvittaville käyttäjille.
- Lisää
functions.php-tiedostoon koodinpätkä, joka tarkistaa nykyisen käyttäjän roolin ja sulkee kategorian pois kaikilta paitsi sallituilta:
1 /** 2 * Hides category with ID 5 from everyone except administrators 3 * and users with the premium_subscriber role. 4 */ 5 function 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 } 20 add_action( 'pre_get_posts', 'sdstudio_hide_category_by_role' );
Miten tämä toimii: funktio tarkistaa nykyisen käyttäjän roolin current_user_can()-funktiolla. Ylläpitäjät ja premium-tilaajat läpäisevät suodattimen, heille kategoria on näkyvissä. Kaikki muut saavat muokatun kyselyn, josta kategoria on suljettu pois. Sama pre_get_posts-koukku, mutta sidottu käyttöoikeuksiin, ei sivuun.
Membersin etu on, että se ei ole pelkkä "kategoria-kiertotie", vaan täysiverinen rooli- ja käyttöoikeusmuokkain. Asennuksen jälkeen pystyt hallitsemaan minkä tahansa sivuston elementin näkyvyyttä: Gutenberg-lohkot, sivut, valikkokohteet, kaikki roolien kautta.
Video-opastus
Katso visuaalinen opas kaikkiin neljään tapaan, lisäosan asentamisesta koodin muokkaamiseen:
⁉️🤔 Usein kysytyt kysymykset
Miksi en voi vain piilottaa kategoriaa CSS:n avulla?
display: nonepoistaa lohkon visuaalisesti, mutta hakukonebotit lukevat sisällön edelleen. Google tulkitsee tällaisen ristiriidan näkyvän ja indeksoitavan sisällön välillä manipulointiyritykseksi (cloaking). Rangaistuksena on manuaalinen sijoituksen lasku tai sivujen poistaminen indeksistä. Oikea ratkaisu on poissulkeminenWP_Query-tasolla, ei CSS:llä.
Miten piilotan kategorian paitsi etusivulta, myös RSS-syötteestä?
Ultimate Category Excluder (tapa 1) osaa tämän suoraan. Lisäosan asetuksissa "Category Exclusion" -välilehdellä merkitse tarvittavat kategoriat ja valitse valintaruutu "RSS Feeds" -kohdan vierestä. Jos työskentelet koodin kautta (tapa 3), korvaa ehto
$query->is_home()ehdolla$query->is_home() || $query->is_feed(), jolloin kategoria katoaa myös syötteestä.
Mitä tapahtuu SEO:lle kategorian piilottamisen jälkeen?
Jos piilotit kategorian oikein (lisäosan tai
pre_get_posts-koukun avulla), itse kategoriasivut ja niiden artikkelit pysyvät saavutettavina suorilla URL-osoitteilla ja indeksoituvat. Vain etusivu ja arkistot muuttuvat, duplikaatit katoavat ja hyödyllinen sisältö säilyy indeksissä. Varmuuden vuoksi lähetä muutosten jälkeen sivustokartta Google Search Consoleen uudelleenindeksointia varten.
Voinko piilottaa kategorian tietyltä käyttäjältä, en roolilta?
WordPressissä ei ole tähän sisäänrakennettuja työkaluja. Tapa 4 on suunniteltu nimenomaan rooleille, tämä on käyttöoikeusjärjestelmän arkkitehtoninen rajoitus. Kiertotienä voit luoda Membersin kautta erillisen roolin tietylle käyttäjälle ja soveltaa tavan 4 koodia. Teknisesti tämä on kaksi klikkausta lisäosan käyttöliittymässä.
Lisäosa vai koodi, mitä valita sivuston pitkäaikaiseen ylläpitoon?
Riippuu muokkausten määrästä. Yhden kategorian piilottaminen kerran, koodi
functions.php-tiedostossa (tapa 3) on kevyempi eikä lisää ylimääräistä kuormaa. Useita kategorioita eri ehdoilla (etusivu, RSS, haku), Ultimate Category Excluder (tapa 1) on helpompi hallita. Pääsääntö: älä asenna lisäosaa yhden valintaruudun takia, joka voidaan ratkaista kolmella koodirivillä.
Mitä valita omaan tehtävääsi
Nämä neljä tapaa kattavat kaikki todelliset skenaariot. Yksinkertainen matriisi auttaa suunnistamaan:
- Tarvitset nopeasti ja ilman koodia → Ultimate Category Excluder. Pari klikkausta, välitön tulos, sopii useimmille tyypillisille sivustoille.
- Kategoria on tiellä vain sivupalkissa → WP Categories Widget. Kohdennettu ratkaisu ilman sivuvaikutuksia.
- Sivustolla on jo valmiiksi vähän lisäosia, haluat pitää sen kevyenä →
pre_get_posts-koukkufunctions.php-tiedostossa. Kolme riviä PHP:tä, nolla ylimääräistä koodia. - Sisältö, jossa on käyttörajoituksia roolien mukaan → Members + koodinpätkä tavasta 4. Joustava käyttöoikeusjärjestelmä, josta on hyötyä muissakin tehtävissä.
Kokeile sitä tapaa, joka on lähimpänä tilannettasi. Jos jokin menee pieleen, palaa varmuuskopioon (teithän sellaisen?) ja kokeile seuraavaa. Ja kerro kommenteissa, mikä tapa toimi sinulle ja millaisessa projektissa piilotit kategorioita.



