2333 wyświetlenia
1425 wyrazów
Wykluczanie treści z wyników wyszukiwania WordPress

Wykluczanie treści z wyników wyszukiwania WordPress

Przeczytasz w 7 minut i 7 sekund 2019.08.31 | Aktualizacja: 2 miesiące temu
Wykluczanie treści z wyników wyszukiwania WordPress

W tym poradniku dowiesz się jak wykluczyć wybrane treści z wyników wyszukiwania WordPress takie jak strony, kategorie lub wybrane wpisy krok po kroku.

Wyszukiwarka WordPress

Wyszukiwarka WordPress jest bardzo przydatnym i wbudowanym narzędziem, które z łatwością pozwala wyszukać interesujące nas treści na stronie lub blogu WordPress. To czy dana witryna posiada wyszukiwarka zależy od tego, jak została stworzona strona WordPress, jednak jej funkcjonalność okazuje się być bardzo pomocna zwłaszcza w przypadku bardzo wielu podstron.

Proces wyszukiwania podstron WordPress jest błyskawiczny i wymaga zaledwie wpisania interesującej użytkownika frazy kluczowej. Wyszukiwarka WordPress nie jest jednak pozbawiona wad, a do największych z nich należy całkowity brak możliwości jej konfiguracji. Oczywiście bez posiłkowania się dodatkowymi wtyczkami. To jakie treści prezentowane są w wynikach wyszukiwania WordPress zależy jednak od wybranego szablonu.

Wykluczanie treści z wyników wyszukiwania WordPress

Poniżej znajdziesz nasze porady krok po kroku jak wykluczyć dowolne treści z wyników wyszukiwania WordPress np. strony lub wpisy. W ten sposób możesz ograniczyć  widoczność treści w wyszukiwarce tylko do tych, które są niezbędne dla użytkownika. Polecam także sprawdzenie tego poradnika, w którym dowiesz się jak wyłączyć wyszukiwanie WordPress.

Dla przykładu załóżmy, że prowadzisz na WordPress bloga, a Twój szablon wyświetla w wynikach wyszukiwania także statyczne strony z kontaktem lub informacjami o Tobie. W tej sytuacji prezentowanie tego na blogu mija się z celem i należałoby wykluczyć z wyszukiwania właśnie takie treści.

Analogiczną sytuacją może być ta, w której w WordPress stosujesz custom posty (tzw. niestandardowe posty/strony/treści) np. do prezentacji portfolio. Prezentowanie w wynikach wyszukiwania tych treści nie jest potrzebne, ponieważ zazwyczaj znajdują one swoje zastosowanie w innym miejscu na stronie.

Niezależnie od tego z jaką sytuacją się mierzysz, w WordPress za pomocą kilku linijek kodu możesz wyłączyć dowolny rodzaj treści z wyników wyszukiwania.

1. Wykluczanie kategorii z wyników wyszukiwania

Jeżeli potrzebujesz wykluczyć z wyników wyszukiwania kategorię WordPress, musisz użyć poniższego kodu:

function sp_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
$query->set( 'cat','-15' );
return $query;
}
add_filter( 'pre_get_posts', 'sp_search_filter' );

W WordPress kategorie identyfikowane są po unikatowym numerze ID np. 36. W celu odnalezienia ID kategorii musisz udać się do nich w panelu administratora i najechać myszką na przycisk Edytuj.

Wykluczanie treści z wyników wyszukiwania WordPress - kategorie

Wykluczanie kategorii z wyników wyszukiwania WordPress.

Gdy to zrobisz, w Twojej przegladarce pojawi się dymek z linkiem URL np.:

https://siriuspro.pl/wp-admin/term.php?taxonomy=category&tag_ID=1&post_type=post&wp_http_referer=%2Fwp-admin%2Fedit-tags.php%3Ftaxonomy%3Dcategory

Pogrubiona część to ID=1, co oznacza, że ID tej kategorii ma numer 1. Aby więc wykluczyć tę kategorię z wyników wyszukiwania musisz zmodyfikować nasz kod zamieniając -15 na -1:

function sp_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
$query->set( 'cat','-1' );
return $query;
}
add_filter( 'pre_get_posts', 'sp_search_filter' );

W przypadku, gdy z wyników wyszukiwania chcesz wykluczyć więcej niż jedną kategorię, kod powinien wyglądać następująco:

function sp_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
$query->set( 'cat','-1, -2, -3' );
return $query;
}add_filter( 'pre_get_posts', 'sp_search_filter' );

Taki kod musisz teraz dodać do pliku functions.php w głównym folderze aktywnego szablonu WordPress.

2. Wykluczanie tagów z wyników wyszukiwania

W przypadku tagów, ich wykluczanie z wyników wyszukiwania opiera się na identycznej metodzie ID. Przejdź wiec do tagów i sprawdź jakie ID mają te, które chcesz wykluczyć z wyszukiwarki,  a następnie dodaj je w poniższym kodzie:

if ( $query->is_search && !is_admin() )
$query->set( 'tag','-1' );
return $query;
}
add_filter( 'pre_get_posts', 'sp_search_filter' );

Dla wielu tagów, kod wyglądać będzie następująco:

if ( $query->is_search && !is_admin() )
$query->set( 'tag','-19, -27, -56' );
return $query;
}
add_filter( 'pre_get_posts', 'sp_search_filter' );

Ponownie dodaj ten kod do functions.php.

W pliku functions.php możesz z powodzeniem stosować wiele kodów, jednak nigdy dwa razy ten sam, ponieważ poskutkuje to błędem WordPress.

Jeżeli Twój WordPress wyświetla błąd, sprawdź nasz poradnik jak naprawić WordPress krok po kroku.

3. Wykluczanie własnych taskonomii z wyników wyszukiwania

Jeżeli korzystasz z custom postów, prawdopodobnie używasz także własne taksonomie. W WordPress możesz także i je z powodzeniem wykluczyć z wyników wyszukiwania. Aby to zrobić, użyj w functions.php tego kodu:

function sp_modify_search_query( $query ) {
global $wp_the_query;
if( $query === $wp_the_query && $query->is_search() ) {
$tax_query = array(
array(
'taxonomy' => 'rodzaj',
'field' => 'slug',
'terms' => 'action',
'operator' => 'NOT IN',
)
);
$query->set( 'tax_query', $tax_query );
}
}
add_action( 'pre_get_posts', 'sp_modify_search_query' );

Aby kod zadziałał, zamiast rodzaj dodaj nazwę własnej taksonomii WordPress.

4. Wykluczanie autorów z wyników wyszukiwania

Istnieje spora szansa, że na Twoim blogu WP jest tylko jeden autor lub pozostali, mają bardzo małą ilość publikacji. Możliwe, że jest jeszcze inny powód, dla którego chcesz wykluczyć autorów z wyników wyszukiwania. To jednak nie problem.

Możesz zrobić to modyfikując poniższy kod i dodając go do functions.php:

function sp_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
$query->set( 'author','-1' );
return $query;
}
add_filter( 'pre_get_posts', 'sp_search_filter' );

Wystarczy tylko, że podmienisz -1 na dowolne ID, które znajdziesz tym razem w zakładce Użytkownicy.

Jeżeli chcesz wykluczyć z wyników wyszukiwania więcej niż jednego autora, użyj tego kodu:

function sp_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
$query->set( 'author','-1, -2, -3' );
return $query;
}
add_filter( 'pre_get_posts', 'sp_search_filter' );

5. Wykluczanie wpisów z wyników wyszukiwania

Jeżeli z wyników wyszukiwania chcesz wykluczyć tylko wpisy/posty (bez statycznych podstron), możesz skorzystać z tego kodu:

function sp_search_filter($query) {
if($query->is_search()) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts', 'sp_search_filter');

Wystarczy dodać go bez modyfikacji do functions.php i gotowe.

6. Wykluczanie wybranych wpisów z wyników wyszukiwania

Możesz także wykluczyć z wyszukiwarki WordPress tylko wybrane wpisy, również podając ich ID jak w przypadku kategorii lub tagów:

function sp_search_filter($query) {
if($query->is_search()) {
$query->set('post__not_in', array(1));
}
return $query;
}
add_filter('pre_get_posts', 'sp_search_filter');

Podmień ID posta, który chcesz wykluczyć lub użyj poniższego kodu dla większej ilości wpisów do wykluczenia:

function sp_search_filter($query) {
if($query->is_search()) {
$query->set('post__not_in', array(1, 2, 3));
}
return $query;
}
add_filter('pre_get_posts', 'sp_search_filter');

7. Wykluczanie stron z wyników wyszukiwania

Na sam koniec jeszcze jeden sposób, ale tym razem na wykluczenie z wyników wyszukiwania wszystkich stron.

if (!is_admin()) {
function sp_search_filter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','sp_search_filter');
}

Dodaj kod tak jak poprzednie do functions.php i gotowe.

Wykluczanie treści z wyszukiwarki za pomocą wtyczki

W Sirius Pro nie jesteśmy zwolennikami instalowania dodatkowych wtyczek, jednak dla początkujących osób mogą się okazać one bardzo przydatne. Jeżeli chcesz wykluczyć z wyników wyszukiwania wybrane treści, ale nie wiesz jak lub boisz się edytować pliki na serwerze, skorzystaj z wtyczki Ivory Search – WordPress Search Plugin. Umożliwia ona zaawansowaną personalizację wyszukiwarki WordPress, w tym także wykluczanie wybranych treści z wyników wyszukiwania.

Wykluczanie treści z wyników wyszukiwania WordPress - wtyczka

Wykluczanie treści w wyszukiwarce za pomocą wtyczki.

Wykluczanie treści z wyszukiwarki razem z nami

A jeżeli potrzebujesz pomocy ekspertów, którzy zrobią to wszystko za Ciebie skontaktuj się z nami już teraz. Czekamy na to by pomóc Ci z WordPressem oraz zbudować dla Ciebie nowoczesną stronę, bloga lub sklep WP. Do usłyszenia ✋

Jesteśmy by pomagać

Skorzystaj z natychmiastowej pomocy ekspertów WordPress. Wyślij nam wiadomość za pomocą formularza kontaktowego i opisz nam swój problem lub to czego potrzebujesz.

Nazwa firmy
Sirius Pro

Dane firmy
ul. Grzybowska 87
00-844 Warszawa

Identyfikator
PL 9111958679
Zgody i prywatność
Sprawdź i wybierz, które dane może przechowywać ta strona internetowa w plikach cookies, pamięci lokalnej i sesji przeglądarki internetowej
Podstawowe funkcjonowanie strony Do poprawnego korzystania z tej strony wymagane jest anonimowe przechowywanie niektórych danych dotyczących jej wyglądu oraz sposobu działania