web-dev-qa-db-fra.com

Deux pages de recherche, un formulaire de recherche

J'ai un formulaire de recherche que je souhaite placer dans plusieurs pages (ce sera dans différents types d'en-tête). Pour ce faire, j'utilise la fonction "obtenir un formulaire de recherche". Sur mon formulaire de recherche, j'ai des sections radio répertoriant deux types de publications personnalisées, à savoir "affiche" et "maison".

J'ai deux pages de recherche différentes pour chaque type d'article. Je veux qu'ils soient séparés car je veux ajouter la recherche à des pages de recherche séparées sur mon navigateur, par exemple. "recherche d'une affiche", "recherche d'une maison".

Existe-t-il un moyen de faire en sorte que le formulaire de recherche redirige l'utilisateur vers la page "Rechercher une maison" ou "Rechercher une affiche" en fonction du bouton radio sélectionné avant la soumission de l'entrée?.

De préférence, j'aimerais si possible conserver tous les codes nécessaires dans le fichier Searcform.php.

1
Adzay

Ceci est ma solution, j'ai utilisé les attributs Onclick pour les boutons radio pour changer les "actions" des éléments dans le formulaire.

<form  id="searchme" action="<?php echo site_url(); ?>/postersearch" method="get">
<ul class=" four columns inline-list offset-by-one">
  <li><label for="radio4"><input name="post_type" CHECKED type="radio" id="radio4" onclick="document.getElementById('searchme').action='<?php echo site_url(); ?>/postersearch'; document.getElementById('searchsubmit').value='Search For Posters';"/> Events</label></li>
  <li><label for="radio5"><input name="post_type"  type="radio" id="radio5" onclick="document.getElementById('searchme').action='<?php echo site_url(); ?>/housesearch'; document.getElementById('searchsubmit').value='Search For Houses';"/> Locations</label></li>
</ul>
<input id="searchsubmit" type="submit" value="Search For posters"  style="width:100%"/>             
</form>
1
Adzay

Accrochez-vous dans 'template_include' et changez le modèle ici.

Exemple composé, non testé:

add_action( 'template_include', 'wpse_96472_search_template' );

function wpse_96472_search_template( $template )
{
    if ( ! is_search() )
        return $template;

    if ( empty ( $_GET['post_type'] ) )
        return $template;

    if ( 'poster' === $_GET['post_type'] )
        return get_template_directory() . '/poster-search-template.php';

    if ( 'house' === $_GET['post_type'] )
        return get_template_directory() . '/house-search-template.php';

    return $template;
}

Vous devez modifier les noms de modèle et le nom de paramètre $_GET du cours.

1
fuxia