Vyloučení stránek/příspěvků z výsledků vyhledávání

Ve výsledcích wordpressového vyhledávání se standardně objevují jak příspěvky (posts) tak i stránky (pages). Pokud potřebujete ve výsledcích zobrazovat jen příspěvky z blogu nebo naopak jen stránky a vynechat tak výsledky z blogu, v tomto článku se dozvíte, jak na to.

Vyhledávání jen v příspěvcích

Níže uvedený snippet vložte do functions.php vaší šablony nebo do vlastního pluginu.

// Vylouceni z vysledku vyhledavani
if (!is_admin()) {
function wpb_search_filter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','wpb_search_filter');
}

Script nejdříve určí, zda se jedná o vyhledávání v administraci nebo ve frontendu. Následně proběhne hledání podle parametru ‚post_type‘.

Vyhledávání pouze ve stránkách

V kódu výše je post_type nastaven jako ‚post‘, což znamená příspěvky. Pokud ale naopak chcete prohledávat pouze stránky, změňte slovo post za page viz následující příklad.

// Vylouceni z vysledku vyhledavani
if (!is_admin()) {
function wpb_search_filter($query) {
if ($query->is_search) {
$query->set('post_type', 'page');
}
return $query;
}
add_filter('pre_get_posts','wpb_search_filter');
}

Vyhledávací pluginy

Podobných výsledků lze samozřejmě dosáhnout i použitím specializovaných pluginů pro rozšíření vyhledávání, kde lze konfigurovat řada dalších parametrů. Nicméně pro základní vyloučení postačí tato drobná změna.

Příklad použití

Na obrázku níže je výsledek vyhledávání slova „test“. I když web obsahuje stránku s názvem „test“, ve výsledcích není. Zobrazují se pouze odpovídající příspěvky.

Filtrované výsledky vyhledávání ve wordpressu.