WordPress domyślnie udostępnia kanał RSS, który zawiera wszystkie opublikowane wpisy. To bardzo przydatna funkcjonalność – użytkownicy mogą subskrybować nowe treści za pomocą czytników RSS, a agregatory i usługi zewnętrzne mogą automatycznie śledzić i publikować Twoje wpisy. Jednak w niektórych przypadkach może zajść potrzeba wykluczenia określonej kategorii z kanału RSS – np. jeśli tworzysz wpisy „informacyjne” lub „testowe”, które nie są przeznaczone dla ogółu odbiorców.
Takie działanie może być również przydatne, gdy prowadzisz bloga wielotematycznego i chcesz ograniczyć kanał RSS tylko do konkretnej części treści (np. tylko artykuły „techniczne”, bez kategorii „ogłoszenia” czy „aktualności”).
Na szczęście WordPress pozwala na stosunkowo proste filtrowanie zawartości feedu, zarówno przy użyciu prostych linków, jak i przy pomocy kodu PHP. Poniżej znajdziesz dokładne instrukcje, jak to zrobić.
Jak wykluczyć kategorię z RSS w WordPressie?
1. Wykluczenie kategorii za pomocą filtru w functions.php
Najbardziej uniwersalną metodą jest dodanie odpowiedniego fragmentu kodu PHP do pliku functions.php
Twojego motywu (lub motywu potomnego). Oto przykładowy kod:
function exclude_category_from_rss($query) {
if ($query->is_feed && $query->is_main_query()) {
$query->set('cat', '-12'); // zamień 12 na ID kategorii, którą chcesz wykluczyć
}
}
add_action('pre_get_posts', 'exclude_category_from_rss');
Co robi ten kod?
- Funkcja sprawdza, czy zapytanie dotyczy kanału RSS (
$query->is_feed
). - Jeśli tak – ustawia filtr kategorii
cat
, z wartością ujemną (-12
), co oznacza wykluczenie tej kategorii. - Możesz wykluczyć wiele kategorii, rozdzielając ich ID przecinkami, np.
-12,-34
.
Jak znaleźć ID kategorii?
Przejdź w kokpicie WordPressa do:
Wpisy → Kategorie → najedź myszką na nazwę kategorii, a w pasku przeglądarki zobaczysz adres URL z parametrem tag_ID=12
. Ta liczba to właśnie ID kategorii.
2. Wykluczenie kategorii w adresie URL kanału RSS
WordPress pozwala również na tworzenie feedów dedykowanych dla konkretnej kategorii, lub ich wykluczania – choć wymaga to nieco „obejścia”.
Jeśli chcesz stworzyć kanał RSS bez jednej kategorii, możesz zastosować zewnętrzny plugin (np. „Category Specific RSS Feed Subscription”) lub korzystać z odrębnego feedu i ukrywać go np. w menu lub dla zewnętrznych integracji.
Uwaga na błędy
- Nie edytuj
functions.php
bezpośrednio w panelu WP – najlepiej przez FTP lub SFTP, bo błąd może zablokować dostęp do witryny. - Sprawdź, czy Twój motyw nie ma już zdefiniowanych funkcji filtrujących zapytania – niechcący możesz nadpisać inną logikę.
Alternatywne rozwiązania
- Pluginy SEO, takie jak RankMath lub Yoast SEO, pozwalają czasem na kontrolę zawartości feedów.
- Możesz utworzyć dedykowany feed tylko z wybranych kategorii i promować go zamiast głównego:
- Przykładowy adres RSS tylko dla kategorii o ID 5:
https://twojadomena.pl/?cat=5&feed=rss2
- Przykładowy adres RSS tylko dla kategorii o ID 5:
Podsumowanie
Wykluczanie konkretnej kategorii z kanału RSS WordPressa to częsty zabieg stosowany przez właścicieli blogów, którzy chcą dostosować zawartość kanału do odbiorców. Najprostszą i najskuteczniejszą metodą jest zastosowanie filtra w functions.php
, który automatycznie wykluczy wskazane kategorie z kanału RSS.
To rozwiązanie jest elastyczne, działa niezależnie od motywu i nie wymaga instalowania dodatkowych wtyczek. Jednak jak zawsze przy ingerencji w pliki motywu, warto zachować ostrożność i przed edycją wykonać kopię zapasową.
Jeśli zależy Ci na pełnej kontroli nad kanałami RSS – rozważ również użycie dedykowanych feedów dla kategorii lub skorzystanie z bardziej zaawansowanych pluginów.
Chcesz, abym przygotował podobny poradnik dla tagów lub niestandardowych taksonomii? Daj znać!
Ostatnie komentarze