Dziś, podczas drobnych zmian w drzewku kategorii na jednej ze stron, którą się opiekuję zapytał mnie kolega, który akurat siedział obok (pogaduszki przy czymś chłodnym ;-)) o 2 kategorie, które mam na stronie – „wyklucz z wyszukiwania” i „wyklucz z RSS”. Pytanie oczywiście nie dotyczyło tego do czego te kategorie służą, bo to chyba oczywiste, tylko jak takie coś najprościej wdrożyć.
Wykluczanie wpisów z wyników wyszukiwania i kanału RSS w WordPressie
O samej zabawie kanałem RSS w WordPressie od dawna mam w Trello utworzoną cegiełkę, i mam nadzieję, że niebawem uda się opublikować poradnik na ten temat, bo pomimo upływu lat, i całego „postępu” RSS nadal jest to moim zdaniem najbielszy sposób na śledzenie aktualności na wybranych stronach. Chyba nawet lepszy niż newsletter… Ale w związku z zapytaniem kolegi w pewnym sensie muszę o ten temat zahaczyć dziś.
Jak już wspomniałem – mam (m.in.) 2 kategorie systemowe:
- Wyklucz z wyszukiwania (ID: 17)
- Wyklucz z RSS (ID: 21)
Wystarczy, że dowolny wpis dodam do którejś z tych kategorii, a zostanie on automatycznie wykluczony z wyników wyszukiwania i/lub kanały RSS.
Wykluczenie robię na podstawi numerów ID poszczególnych obiektów (w tym przypadku kategorii), co najprościej odczytać w panelu zarządzania WordPressem (WP-Admin) poprzez najechanie kursorem na wybrany element – w adresie URL zazwyczaj będzie identyfikator obiektu:
https://webinsider.pl/wp-admin/term.php?taxonomy=category&tag_ID=21
Za wykluczanie z wyników wyszukiwania odpowiada kod:
function webinsider_wp_exclude_category_from_search( $query ) {
if ( $query->is_search && !is_admin() ) {
$query->set( 'cat', '-17' ); // 17: Wyklcuz z wyszukiwania
}
return $query;
}
add_filter( 'pre_get_posts', 'webinsider_wp_exclude_category_from_search' );
Za wykluczanie z kanału RSS odpowiada kod:
function webinsider_wp_exclude_category_from_rss( $query ) {
if ( $query->is_feed ) {
$query->set( 'cat', '-21' ); // 21: Wyklucz z RSS
}
return $query;
}
add_filter( 'pre_get_posts', 'webinsider_wp_exclude_category_from_rss' );
Możemy też wykluczenia dokonać po tagach zamiast kategorii. Jednym:
$query->set( 'tag', '-4' );
Lub kilku:
$query->set( 'tag', '-4, -8' );
Możemy też wykluczenia dokonać np. po autorze:
$query->set( 'author', '-3' );
Kod możemy wstawić czy to do własnej wtyczki, czy do pliku functions.php, oczywiście motywu potomnego…
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
A czy w ogóle RSS jeszcze ma sens?
Jeśli zależy Ci na wygodnym dostępie do informacji nt publikacji an Twoich ulubionych stronach i to Ty chcesz decydować co obserwujesz/czytasz, a nie jakiś algorytm, to RSS jest nadal zdecydowanie najlepszym sposobem na to. Zresztą w lutym napisałem artykuł, który cały czas dla mnie jest aktualny: RSS to cały czas najlepszy sposób na śledzenie ulubionych źródeł informacji – stron internetowych, blogów, portali