
🔒 Jak ukryć post lub całą kategorię ze strony głównej WordPress
Nowy wpis wyskoczył na stronę główną i zasłonił sobą wszystko. Przez miesiąc takich wpisów, trzy tuziny, a artykuły, które realnie przyprowadzają klientów, odpełzły aż na czwarte przewinięcie. Ręka sama ciągnie się, by usunąć zbędne. Nie trzeba.
WordPress domyślnie wyświetla najnowsze wpisy na stronie głównej. Dla bloga to normalne. Jeśli jednak mają Państwo katalog, bazę wiedzy lub sklep, część treści powinna żyć w sliderze, na stronie docelowej lub w newsletterze. Nie ma potrzeby dublować jej na stronie głównej. Zamykać w szkicu, tracić SEO. Usuwać, tym bardziej.
Poniżej pięć sposobów na ukrycie wpisu lub całej kategorii ze strony głównej: od wbudowanej prywatności na dwa kliknięcia po filtr na poziomie bazy danych. Proszę wybrać pod swoje zadanie.
💡 Szybki przegląd:
- Ukryć jeden wpis przed wszystkimi odwiedzającymi: wbudowana prywatność WordPress, dwa kliknięcia w edytorze.
- Selektywnie zarządzać widocznością treści: wtyczka WP Hide Post, elastyczne ustawienia dla strony głównej, kategorii, wyszukiwania i RSS.
- Ominąć strumień strony głównej bez wtyczek: proszę opublikować wpis jako stronę, a motyw go nie zauważy.
- Wykluczyć całą kategorię kodem: hak pre_get_posts w pliku functions.php, osiem linii.
- Zrobić to samo checkboxami: wtyczka Ultimate Category Excluder, zero linii kodu.
Po co w ogóle ukrywać wpisy ze strony głównej
Powodem nie zawsze jest „nie chcę pokazywać". Częściej chodzi o strukturę witryny. Załóżmy, że mają Państwo trzy kategorie: recenzje wtyczek, wiadomości branżowe i artykuły gościnne. Recenzje pracują na ruch z wyszukiwarki, ich miejsce jest na widoku. Wiadomości są ciekawe dla subskrybentów, logicznie jest wyświetlać je w sliderze, a nie dublować w ogólnym strumieniu. Artykuły gościnne żyją w sekcji „Kolumna autorów" i na stronie głównej tworzą po prostu szum.
Inny scenariusz, WooCommerce. Produkt został wycofany ze sprzedaży, ale strona z opisem i opiniami musi pozostać dostępna pod bezpośrednim linkiem. Usunięcie z katalogu zabija nagromadzoną wartość SEO. Ukrycie z witryny sklepowej, z zachowaniem URL, proszę bardzo.
WordPress nie daje checkboxa „nie pokazuj na stronie głównej" od razu po instalacji. Ale zadanie daje się rozwiązać, od trywialnego po w pełni automatyczne.
Sposób 1: Wbudowana widoczność, wpis prywatny
Najprostsza opcja. Bez wtyczek, bez edycji kodu. Sprawdza się, gdy trzeba usunąć jeden lub dwa wpisy, a publiczny dostęp do nich nie jest ważny.

Proszę otworzyć wpis w edytorze. Po prawej stronie, w bloku „Opublikuj", proszę kliknąć link „Widoczność: Publiczny". Proszę wybrać Prywatny. To wszystko. Wpis znika ze strony głównej, z archiwów i z wyszukiwania. Bezpośredni link działa, ale tylko dla administratorów i redaktorów, zwykli odwiedzający otrzymają błąd 404.
Minus jest oczywisty: treść jest niedostępna dla nikogo poza Państwa zespołem. Do zamkniętych szkiców i wewnętrznych instrukcji, idealnie. Do materiałów, które mają widzieć klienci, nie.
Jeśli potrzebują Państwo głębiej zapoznać się z edytorem WordPress, od podstawowej publikacji po zaawansowane ustawienia, na WordPress.org znajduje się oficjalny przewodnik po edytorze bloków.
Sposób 2: Wtyczka WP Hide Post
Gdy tryb prywatny nie jest odpowiedni, a trzeba zarządzać widocznością selektywnie, ta wtyczka pokrywa prawie wszystkie scenariusze.

WP Hide Post, bezpłatna wtyczka od Xfinitysoft. Po instalacji w każdym wpisie, stronie i produkcie WooCommerce pojawia się metabox „Post Visibility". Wewnątrz znajduje się osiem pól wyboru: strona główna, kategorie, tagi, archiwa autorów i dat, wyszukiwarka, RSS, REST API oraz widżety.
Zaznaczy Pani/Pan odpowiednie opcje, a post zniknie z wybranych obszarów. Bezpośredni link nadal działa. Żadnego kodu. Żadnych zmian w szablonie.
Co jeszcze daje wtyczka:
- Plusy: wsparcie dla WooCommerce od razu po instalacji, ukrywa produkty z witryny sklepowej, kategorii i wyszukiwarki sklepu; ukrywa pliki multimedialne i załączniki; kolumna „Hidden" w panelu administracyjnym pokazuje, gdzie dokładnie ukryto każdy element.
- Minusy: darmowa wersja nie obsługuje edycji zbiorczej, tylko pojedyncze posty; brak przekierowania ukrytych stron na 404 (wymagana wersja Pro).
- Cena: Free; Pro, od 29 USD rocznie (Quick Edit, Bulk Edit, 404 Redirect, Hide Everywhere).
Instalacja w trzech krokach: Plugins → Add New, wyszukanie „WP Hide Post", instalacja i aktywacja. Metabox widoczności pojawia się w edytorze każdego wpisu natychmiast po aktywacji.
🔗 WP Hide Post na WordPress.org
Sposób 3: Opublikować jako stronę
Manewr obejścia, który działa z większością motywów. Domyślny motyw WordPress wyświetla na stronie głównej ostatnie wpisy (post type post). Strony (post type page) nie trafiają do tego strumienia, funkcjonują osobno.
Proszę utworzyć nową stronę (Strony → Dodaj nową), napisać materiał i opublikować. Na stronie głównej się nie pojawi. Nie trafi też do kanału RSS, archiwów kategorii ani wyników wyszukiwania, chyba że osobno skonfigurowała Pani/Pan wyszukiwanie tak, by obejmowało strony.
To rozwiązanie na sytuacje, gdy treść znajduje się pod stałym adresem URL w menu lub na stronie docelowej, a czytelnicy trafiają na nią przez bezpośredni link, nie przez strumień bloga. Prosto i bez wtyczek. Minus: strony nie uczestniczą w taksonomiach wpisów, nie można przypisać tagu ani dodać do kategorii.
Sposób 4: Wykluczyć kategorię za pomocą kodu
Poprzednie sposoby działają na pojedynczych wpisach. Jeśli jednak trzeba ukryć całą kategorię, powiedzmy „Nowości branżowe" z 40 postami, ręczne zaznaczanie pól staje się udręką. Tu pomaga filtrowanie na poziomie zapytań WordPress.
Najpierw proszę poznać ID kategorii. Proszę wejść w Wpisy → Kategorie, otworzyć wybraną i spojrzeć na pasek adresu przeglądarki: parametr tag_ID=55, to jest właśnie ID. Proszę zapamiętać tę liczbę.
Teraz proszę dodać do functions.php aktywnego motywu (najlepiej potomnego) taki kod:
1 function exclude_category_from_home($query) { 2 if ( $query->is_home() && $query->is_main_query() ) { 3 $query->set( 'cat', '-55' ); 4 } 5 return $query; 6 } 7 add_filter( 'pre_get_posts', 'exclude_category_from_home' );
Proszę zastąpić 55 ID swojej kategorii. Minus przed liczbą oznacza „wyklucz".
Co tu się dzieje. Funkcja sprawdza, czy jesteśmy na stronie głównej (is_home) i czy to główne zapytanie (is_main_query), aby nie naruszyć bocznych widżetów i zagnieżdżonych pętli. Następnie dodaje parametr cat ze znakiem minus, standardową składnię WP_Query do wykluczania kategorii. WordPress nawet nie pobiera postów z wykluczonej kategorii z bazy danych, a nie tylko ukrywa je w szablonie. Szybko, czysto, bez zbędnych zapytań.
Po zapisaniu pliku wszystkie wpisy z wybranej kategorii znikają ze strony głównej. Aby cofnąć zmianę, proszę usunąć ten blok z functions.php.
Jeśli trzeba wykluczyć kilka kategorii, proszę podać ID oddzielone przecinkami: 'cat' => '-12,-34,-56'.
Sposób 5: Wtyczka Ultimate Category Excluder
Dla tych, którzy nie chcą dotykać kodu, wtyczka, która robi dokładnie to samo przez panel administracyjny.

Ultimate Category Excluder, bezpłatna wtyczka z ponad 50 000 aktywnych instalacji i oceną 4,2 na WordPress.org. Po aktywacji proszę wejść w Ustawienia → Category Exclusion i zaznaczyć polami kategorie, które mają zostać wykluczone. Cztery kolumny: Front Page, Archives, Feeds, Search. Minimalistycznie. To wystarcza w 90% przypadków.
- Plusy: zero kodu; wykluczanie z czterech stref jednym kliknięciem; działa z natywnymi kategoriami WordPress.
- Minusy: nie działa z taksonomiami WooCommerce i niestandardowych typów wpisów; niektórzy użytkownicy zgłaszają konflikt z Elementorem, wtyczka resetuje szablon strony na „Elementor Canvas" (rozwiązaniem jest przełączenie z powrotem na „Elementor Full Width").
- Cena: Free.
Wtyczka nie była aktualizowana od grudnia 2025, ale jest przetestowana aż do WordPress 6.9 i pozostaje stabilna dla podstawowego scenariusza „wyklucz kategorię ze strony głównej". Jeśli regularność aktualizacji jest dla Pani/Pana krytyczna, proszę wybrać sposób 4, te same 8 linii kodu bez zewnętrznych zależności.
🔗 Ultimate Category Excluder na WordPress.org
Krótkie wideo na ten temat, po angielsku, ale wszystkie czynności są pokazane wizualnie, krok po kroku:
⁉️🤔 Często zadawane pytania
Czy można ukryć wpis ze strony głównej, ale pozostawić go w wyszukiwarce?
Tak. Wtyczka WP Hide Post pozwala zaznaczyć „Hide from Front Page" i pozostawić odznaczoną opcję „Hide from Search Results". Wpis będzie dostępny przez wyszukiwarkę i bezpośredni link, ale nie pojawi się na stronie głównej. Wbudowana prywatność tego nie potrafi: ukrywa wpis całkowicie, włącznie z wyszukiwarką i bezpośrednim dostępem. Do elastycznego zarządzania proszę użyć wtyczki.
Co dzieje się z indeksowaniem SEO ukrytych wpisów?
Jeśli wpis został ukryty przez wtyczkę (WP Hide Post lub Ultimate Category Excluder), bezpośredni link pozostaje aktywny. Google może go zaindeksować, samo usunięcie ze strony głównej nie wpływa na indeksowanie. Prywatne wpisy WordPress nie są indeksowane: serwer zwraca 404 dla nieuwierzytelnionych użytkowników. To właściwy wybór, jeśli treść w ogóle nie ma trafić do wyników wyszukiwania.
Czy można ukryć wpisy z kilku kategorii jednocześnie?
Można. W kodzie proszę wymienić ID po przecinku ze znakiem minusa:
'cat' => '-12,-34,-56'. We wtyczce Ultimate Category Excluder wystarczy zaznaczyć wszystkie potrzebne kategorie na stronie ustawień. Ograniczenie:pre_get_postszcatwyklucza kategorie, ale nie działa z niestandardowymi taksonomiami. Dla nich należy użyć parametrutax_query.
Czy wtyczka WP Hide Post spowalnia stronę?
Nie. Wtyczka używa własnej tabeli w bazie danych z cache’owaniem, metabox nie dodaje zapytań do
wp_postmeta. Na froncie wpływ na szybkość jest niezauważalny. Według danych dewelopera (Xfinitysoft) przyrost wynosi mniej niż 5 ms na stronę przy typowej konfiguracji.
Co jest lepsze: kod czy wtyczka do wykluczania kategorii?
To zależy od tego, na ile komfortowo czują się Państwo z PHP. Funkcja na
pre_get_postsze sposobu 4 to 8 linii bez zewnętrznych zależności i aktualizacji. Wtyczka Ultimate Category Excluder to zero linii kodu, ale dodatkowa wtyczka w panelu administracyjnym. W praktyce: jeśli wykluczają Państwo jedną lub dwie kategorie i nie planują częstych zmian reguł, kod jest prostszy i lżejszy. Jeśli kategorii jest dużo, a reguły zmieniają się często, wtyczka jest wygodniejsza.
Który sposób wybrać do swojego zadania
Krótka matryca, żeby nie czytać całego artykułu następnym razem:
- Jeden wpis, tylko dla redakcji → Prywatna widoczność (sposób 1). Zero wtyczek, dwa kliknięcia.
- Jeden wpis, klienci muszą widzieć go przez link → WP Hide Post (sposób 2). Maksymalna elastyczność, działa z WooCommerce.
- Treść nie na blog, lecz do menu lub strony docelowej → Opublikować jako stronę (sposób 3). Szablon tego nie zauważy.
- Cała kategoria, dobrze radzą sobie Państwo z PHP →
pre_get_postswfunctions.php(sposób 4). Osiem linii, bez wtyczek. - Cała kategoria, nie chcą Państwo dotykać kodu → Ultimate Category Excluder (sposób 5). Zaznaczenie pól i gotowe.
Jeśli regularnie ukrywają i przywracają Państwo wpisy, proszę zacząć od WP Hide Post. Darmowa wersja wystarcza do strony głównej, kategorii, wyszukiwarki i RSS. Wersja Pro przyda się, gdy wpisów jest blisko setki i potrzebna jest masowa edycja.
Raz się konfiguruje i zapomina. WordPress robi całą resztę.



