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.