web-dev-qa-db-fra.com

Limiter une recherche à un type de publication personnalisé

J'ai un formulaire de recherche dans la page d'accueil et un formulaire de recherche dans la barre latérale. Est-il possible d'afficher les résultats du formulaire de recherche dans la page d'accueil selon un modèle spécifique et de faire en sorte que le formulaire de recherche de la barre latérale affiche un autre modèle?

je veux faire la boîte de recherche de page d'accueil pour afficher les résultats de manière différente. C'est un post personnalisé. Ainsi, si l'utilisateur utilise ce formulaire, il ne doit contenir que des données provenant de ce message personnalisé. Mais la zone de recherche par défaut wordpress dans la barre latérale devrait obtenir les résultats de l’ensemble du site Web.

par exemple. liste des résultats de la page de recherche avec carte

Merci

2
Latheesh V M Villa

Vous pouvez limiter une recherche à un type de publication personnalisé en modifiant un formulaire de recherche de base WP comme suit:

<form id="cptsearch" action="<?php echo home_url(); ?>" method="get">
    <input type="text" name="s" />
    <input type="hidden" name="post_type" value="POSTTYPENAME" />
    <input id="searchsubmit" type="submit" alt="Search" value="Search" />
</form>

Pour sélectionner un modèle spécialisé pour la recherche de type d'article personnalisé, ajoutez ce filtre dans votre fichier de fonctions:

function template_chooser($template) {
    global $wp_query;
    $post_type = get_query_var('post_type');
    if( $wp_query->is_search && $post_type == 'POSTTYPENAME' ) {
    return locate_template('page_POSTTYPENAME.php');
    }
    return $template;
}
add_filter('template_include', 'template_chooser');

Et bien sûr, vous devez créer le modèle de résultats de recherche spécialisé: page_POSTTYPENAME.php

2
Ray Gulick