Skip to content

Kaikki WordPressistä, web-kehityksestä — ja paljon muuta

🔒 Kuinka piilottaa kategoria WordPressissä: 4 menetelmää vaihe vaiheelta

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

Ultimate Category Excluder -lisäosan asentaminen WordPress-hallintapaneelista

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ä.
Piilotettavien kategorioiden merkitseminen Ultimate Category Excluderissa

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).
WP Categories Widget -widgetin raahaaminen WordPress-sivupalkkiin
  • Aseta vimpaimen asetuksissa otsikko ja piilota se halutessasi. Valitse "Näytä"-pudotusvalikosta Kaikki kategoriat tai määritä tietyt kategoriat, jotka näytetään.
Piilotettavien kategorioiden valitseminen WP Categories Widgetin asetuksissa
  • 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 */
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' );

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, jossa tag_ID=-kohdan jälkeinen numero on tunniste.
Kategoria-ID:n tarkistaminen viemällä hiiri kategorian nimen päälle WordPress-hallinnassa

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/, lataa functions.php, lisää koodi tiedoston loppuun (ennen ?>-merkintää, jos sellainen on) ja lataa tiedosto takaisin.
  • Hallintapaneelin kautta: avaa Ulkoasu → Teemaeditori, valitse aktiivinen teema, etsi functions.php oikeanpuoleisesta sarakkeesta, lisää koodi ja napsauta "Päivitä tiedosto".
functions.php-tiedoston muokkaaminen WordPress-teemaeditorilla

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

Members-lisäosa, roolien ja käyttöoikeuksien hallinta WordPressissä

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 */
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' );

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: none poistaa 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 poissulkeminen WP_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-koukku functions.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.