Comment utiliser plusieurs formulaires de recherche dans WordPress

Comment utiliser plusieurs formulaires de recherche dans WordPress / Tutoriels

Récemment, nous vous avons montré comment limiter les résultats de recherche pour des types de publication spécifiques dans WordPress. Nous allons maintenant vous montrer comment créer des formulaires de recherche différents / multiples. De cette façon, chaque formulaire peut être limité à la recherche d'un type de publication spécifique. Bien que ce ne soit pas très difficile, il vous faudra posséder une compréhension de base des modèles WordPress..

Tout d'abord, vous aurez besoin de quelques formulaires de recherche. Placez le code suivant où vous voulez qu'il soit dans votre blog:

 

Afin de spécifier le type de recherche que fera ce formulaire, il suffit de changer la valeur du champ masqué. Pour le moment, il est réglé sur «normal» mais cela peut être ce que vous voulez. Ensuite, nous devons modifier le fichier search.php. Ouvrez-le et remplacez tout ce qu'il contient par ce code (copiez d'abord le code existant dans votre presse-papiers, vous en aurez besoin dans une minute):

  

Nous allons donc supposer que vous avez deux formulaires de recherche, normal et book. Ce code est simplement en train de rediriger la recherche vers le fichier php qui gère cette requête spécifique. Il ne reste plus qu'à créer ces fichiers. Allez-y, créez un fichier normal-search.php et un fichier books-search.php (remplacez simplement «normal» et «books» par les valeurs que vous avez utilisées).

Maintenant, dans normal-search.php, copiez et collez le code suivant:

 $ args = array ('post_type' => 'post'); $ args = array_merge ($ args, $ wp_query-> query); query_posts ($ args); 

Immédiatement après cela, collez le code de boucle de votre presse-papiers que vous avez copié à partir du fichier search.php. Ensemble, ce code ne cherchera que vos articles de blog normaux. Maintenant, dans le fichier books-search.php, ajoutez ce morceau de code et collez à nouveau la boucle juste après:

 $ args = array ('post_type' => 'books'); $ args = array_merge ($ args, $ wp_query-> query); query_posts ($ args); 

Cela entraînera WordPress à rechercher uniquement le type de publication personnalisé de «livres». Vous pouvez répéter cette procédure pour autant de formulaires de recherche que vous le souhaitez..