Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

🔒 Kuidas peita kategooriat WordPressis: 4 meetodit samm-sammult

🔒 Kuidas peita kategooriat WordPressis: 4 meetodit samm-sammult

WordPressi avaleht kuvab vaikimisi kõike: kõigi loodud kategooriate postitused segunevad ühte voogu. Blogi puhul on see normaalne. Kuid kui käivitate veebipoodi, portfooliot või ettevõtte saiti, siis mõned kategooriad lihtsalt ei sobi avalehele.

Veel hullem, otsingumootorite robotid indekseerivad kõike, sealhulgas teenuse- ja mustandikategooriaid. Tulemuseks on duplikaatlehed otsingutulemustes, lahjendatud indeks ja langevad pingeread. Ning külastaja, kes satub suletud sektsiooni, saab sisu asemel tühja lehe.

Õnneks saate WordPressis kategooria peita 5-10 minutiga ja selleks pole arendajat vaja. Allpool on neli toimivat meetodit: alates pluginast, mis nõuab kahte klõpsu, kuni puhta koodini failis functions.php. Valige see, mis teie ülesandega sobib.

💡 Kiire ülevaade:

  • Installige Ultimate Category Excluder ja märkige peidetavad kategooriad.
  • Seadistage WP Categories Widget valikuliseks peitmiseks külgribal.
  • Lisage pre_get_posts konks faili functions.php ja välistage kategooria ID järgi.
  • Kasutage Members pluginat koos koodijupiga, et peita kasutajarollide järgi.

Milleks üldse kategooriaid peita?

WordPress ei tee vahet „avalikul" ja „tehnilisel" kategoorial. Kõik, mille olete loonud jaotises „Postitused → Kategooriad", ilmub automaatselt põhivoogu ja arhiividesse. Mõnel juhul on see mugav, teistel tekitab probleeme:

  • Teenusekategooriad (näiteks „Mustandid" või „Toimetajatele") indekseeritakse ja ilmuvad otsingusse.
  • Vana või aegunud sisuga kategooriad lahjendavad saidi muljet.
  • Suletud sektsioonid (premium-artiklid, kliendimaterjalid) muutuvad kõigile külastajatele nähtavaks.

Oluline punkt: ärge püüdke probleemi CSS-i abil lahendada. display: none peidab kategooria visuaalselt, kuid otsingumootorid näevad sisu endiselt ja võivad seda käsitleda varjamisena. Google'i trahv on sellistel juhtudel peaaegu garanteeritud. Õige viis on välistada kategooria andmebaasipäringu tasemel, mitte maskeerida seda stiilidega.

Meetod 1. Ultimate Category Excluder, peida kategooria minutiga

Lihtsaim ja usaldusväärseim meetod on Ultimate Category Excluder plugin. 2026. aasta juuni seisuga on sellel 50 000+ aktiivset installatsiooni, hinnang 4,2/5 ja ühilduvus WordPress 6.5+-ga. Arendaja uuendab pluginat järjepidevalt, viimane väljalase oli 2025. aasta detsembris.

Installing the Ultimate Category Excluder plugin from the WordPress panel

Samm-sammult:

  • WordPressi paneelis minge Pluginad → Lisa uus.
  • Sisestage otsinguväljale „Ultimate Category Excluder", klõpsake Paigalda ja seejärel Aktiveeri.
  • Pärast aktiveerimist ilmub menüüsse „Seaded" kirje Category Exclusion, minge sinna.
  • Märkige ruudud kategooriate puhul, mida soovite avalehe, arhiivide, RSS-voo ja otsingu eest peita.
  • Klõpsake Uuenda.
Marking categories to hide in Ultimate Category Excluder

Valmis. Avage oma sait inkognito režiimis ja veenduge, et märgitud kategooriate postitused on avalehelt kadunud. Plugin töötab WP_Query tasemel: see muudab andmebaasipäringut, mitte ei peida plokke CSS-i kaudu. Seetõttu on see SEO jaoks täiesti ohutu.

Plussid: null koodi, sobib algajatele, valikuline välistamine (avaleht, arhiivid, RSS, eraldi). Miinused: kui on vaja kategooriat peita ainult konkreetses vidinas, siis see plugin ei aita, selleks on täpsem tööriist.

Meetod 2. WP Categories Widget, peida kategooria vidinas

Kui teie ülesanne on kitsam, eemaldades konkreetse kategooria külgribalt või jalusest, mitte kogu saidilt, kasutage WP Categories Widget. 2026. aasta veebruari seisuga on plugin versioon 2.8.1, täielik ühilduvus praeguse WordPressiga ja 3000+ aktiivset installatsiooni.

Mida see suudab:

  • Kuva kategooriaid mis tahes taksonoomiast (mitte ainult standardseid kategooriaid, vaid ka silte ja kohandatud taksonoomiaid).
  • Peida vidina pealkiri.
  • Luba või keela postituste loendur iga kategooria puhul.
  • Näita või peida valikuliselt mis tahes kategooriaid otse vidina seadetest.

Kuidas seda kasutada:

  • Paigalda ja aktiveeri plugin menüüst Plugins → Add New.
  • Mine jaotisesse Appearance → Widgets.
  • Otsi üles vidin „WP Categories Widget" ja lohista see soovitud alale (külgriba, jalus).
Dragging the WP Categories Widget into the WordPress sidebar
  • Vidina seadetes määra pealkiri ja soovi korral peida see. Rippmenüüst „Show" vali All Categories või määra konkreetsed kategooriad, mida tuleks kuvada.
Selecting categories to hide in WP Categories Widget settings
  • Salvesta muudatused.

Kõik, mis ei ole „kuvatavate" loendis, on selle vidina puhul automaatselt peidetud. Märkus: plugin kontrollib nähtavust ainult oma vidina piires. See ei mõjuta avalehe voogu ega arhiive, selleks mine tagasi 1. meetodi juurde.

3. Meetod. pre_get_posts konks, kategooria peitmine koodi abil

Kui sa ei soovi ühe funktsiooni jaoks lisaprogrammi paigaldada, saad hakkama paari reaga failis functions.php. See meetod muudab peamist WordPressi tsüklit enne päringu täitmist, kategooria välistatakse andmebaasi tasemel, mitte ei maskeerita.

Oluline: enne faili functions.php muutmist tee saidist täielik varukoopia. Viga selles failis viib kogu saidi kokku ja selle taastamine ilma varukoopiata on keeruline.

Siin on töötav koodijupp. See kasutab pre_get_posts konksu ja määrab, milline kategooria avalehelt välja jätta:

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

Real 'cat', '-5' on number 5 selle kategooria identifikaator, mille soovid peita. Miinusmärk tähendab „välista". Kuidas leida vajaliku kategooria ID:

  • WordPressi paneelis ava Posts → Categories.
  • Liigu hiirega kategooria nime kohale.
  • Ekraani allservas (brauseri olekuribal) kuvatakse URL nagu ...taxonomy=category&tag_ID=6, number pärast tag_ID= ongi ID.
Viewing category ID by hovering over the category name in WordPress admin

Ekraanipildil on kategooria „Countries" ID 6. Asenda see oma numbriga, salvesta fail ja selle kategooria postitused kaovad avalehelt.

Kuhu kood paigutada:

  • FTP kaudu: loo serveriga ühendus, mine kausta /wp-content/themes/your-theme/, laadi alla functions.php, lisa kood faili lõppu (enne ?>, kui see on olemas) ja laadi fail tagasi.
  • Administraatori paneeli kaudu: ava Appearance → Theme Editor, vali aktiivne teema, leia paremast veerust functions.php, sisesta kood ja klõpsa nuppu „Update File".
Editing the functions.php file through the WordPress theme editor

Mõned hostiteenuse pakkujad blokeerivad turvakaalutlustel juurdepääsu teemaredaktorile. Sel juhul kasuta ainult FTP-d või mine tagasi 1. meetodi plugina juurde, see lahendab ülesande ilma failidele juurdepääsuta.

Mis on paranenud võrreldes vanade juhendite algse retseptiga: lisatud on ! is_admin() kontroll (et mitte lõhkuda administraatori paneeli) ja $query->is_main_query() (et mitte mõjutada vidinate ja menüüde teiseseid päringuid). Ilma nende kontrollideta võib kood lõhkuda administraatori paneelis filtreerimise või menüüde kuvamise, praktikas kontrollitud.

Meetod 4. Kategooriate peitmine kasutajarollide alusel

Kujutage ette olukorda: teil on tasulised artiklid, mis on saadaval ainult maksvatele tellijatele. Või sisedokumentatsioon töötajatele. Või suletud jaotis hulgiklientidele. Tavalised meetodid peidavad kategooria kõigi eest, kuid siin on vaja, et administraator ja privilegeeritud kasutajad seda näeksid, külalised ja tavatellijad aga mitte.

Varem kasutati selle ülesande jaoks CaPa Protect pistikprogrammi, kuid see on WordPressi repositooriumist eemaldatud. Selle asendas võimsam kombinatsioon: Members pistikprogramm (300 000+ paigaldust, hinne 4,7/5, versioon 3.2.22 2026. aasta juuni seisuga) ja väike koodijupp.

Members plugin, managing roles and permissions in WordPress

Algoritm:

  • Paigaldage ja aktiveerige Members menüüst „Pistikprogrammid → Lisa uus".
  • Minge jaotisesse Kasutajad → Rollid. Looge roll, näiteks „Premium-tellija", või kasutage olemasolevaid.
  • Määrake see roll vajalikele kasutajatele.
  • Lisage faili functions.php koodilõik, mis kontrollib praeguse kasutaja rolli ja välistab kategooria kõigi jaoks, välja arvatud lubatud kasutajad:
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' );

Kuidas see töötab: funktsioon kontrollib praeguse kasutaja rolli funktsiooni current_user_can() kaudu. Administraatorid ja premium-tellijad läbivad filtri, nende jaoks on kategooria nähtav. Kõik teised saavad muudetud päringu, kus kategooria on välistatud. Sama pre_get_posts konks, kuid seotud õigustega, mitte lehega.

Membersi pluss on see, et see pole lihtsalt „kategooria lahendus", vaid täisväärtuslik rollide ja õiguste redaktor. Pärast paigaldamist saate kontrollida mis tahes saidi elementide nähtavust: Gutenbergi plokid, lehed, menüüelemendid, kõik rollide kaudu.

Videoõpetus

Vaadake visuaalset juhendit kõigi nelja meetodi kohta alates pistikprogrammi paigaldamisest kuni koodi redigeerimiseni:

⁉️🤔 Korduma kippuvad küsimused

Miks ma ei saa kategooriat lihtsalt CSS-i abil peita?

display: none eemaldab ploki visuaalselt, kuid otsingumootorite robotid loevad sisu endiselt. Google käsitleb sellist lahknevust nähtava ja indekseeritava sisu vahel manipuleerimiskatsena (cloaking). Karistuseks on käsitsi madalamale asetamine või lehtede indeksist eemaldamine. Õige lahendus on välistamine WP_Query tasemel, mitte CSS-iga.

Kuidas peita kategooriat mitte ainult avalehel, vaid ka RSS-voost?

Ultimate Category Excluder (meetod 1) suudab seda teha kohe, ilma lisaseadistusteta. Pistikprogrammi seadetes vahekaardil „Category Exclusion" märkige vajalikud kategooriad ja tehke linnuke ruutu „RSS Feeds" kõrval. Kui töötate koodi kaudu (meetod 3), asendage tingimus $query->is_home() tingimusega $query->is_home() || $query->is_feed() ja kategooria kaob ka voost.

Mis juhtub SEO-ga pärast kategooria peitmist?

Kui peitsite kategooria õigesti (pistikprogrammi või pre_get_posts abil), jäävad kategooria lehed ise ja nende postitused otseste URL-ide kaudu kättesaadavaks ja indekseeritakse. Muutuvad ainult avaleht ja arhiivid, duplikaadid kaovad ja kasulik sisu jääb indeksisse. Kindluse mõttes esitage pärast muudatuste tegemist Google Search Console'is saidikaart uuesti roomamiseks.

Kas ma saan kategooriat peita konkreetse kasutaja, mitte rolli eest?

WordPressil pole selleks sisseehitatud tööriistu. Meetod 4 on loodud spetsiaalselt rollide jaoks, see on õiguste süsteemi arhitektuuriline piirang. Lahendusena saate Membersi kaudu luua konkreetsele kasutajale eraldi rolli ja rakendada meetodi 4 koodi. Tehniliselt on see kaks klõpsu pistikprogrammi liideses.

Pistikprogramm või kood, mida valida saidi pikaajaliseks hoolduseks?

Sõltub muudatuste arvust. Ühe kategooria ühekordne peitmine, kood failis functions.php (meetod 3) on kergem ega lisa täiendavat koormust. Mitu kategooriat erinevate tingimustega (avaleht, RSS, otsing), Ultimate Category Excluder (meetod 1) on lihtsam hallata. Peamine reegel: ärge paigaldage pistikprogrammi ühe märkeruudu pärast, mida saab lahendada kolme koodireaga.

Mida oma ülesande jaoks valida

Neli meetodit katavad kõik reaalsed stsenaariumid. Lihtne maatriks aitab orienteeruda:

  • Vaja kiiresti ja ilma koodita → Ultimate Category Excluder. Paar klõpsu, kohene tulemus, sobib enamikule tüüpilistele saitidele.
  • Kategooria segab ainult külgribal → WP Categories Widget. Sihipärane lahendus ilma kõrvalmõjudeta.
  • Saidil on juba minimaalselt pistikprogramme, soovite hoida selle kergepre_get_posts konks failis functions.php. Kolm rida PHP-d, null lisakoodi.
  • Sisu juurdepääsupiirangutega rollide alusel → Members + koodilõik meetodist 4. Paindlik õiguste süsteem, mis on kasulik ka muude ülesannete puhul.

Proovige meetodit, mis on teie olukorrale lähemal. Kui midagi läheb valesti, minge tagasi varukoopia juurde (te ju tegite selle?) ja proovige järgmist. Ja kommentaarides andke teada, milline meetod teie puhul töötas ja millise projekti jaoks te kategooriaid peitsite.