J'ai quelques options de menu déroulant dans ma barre latérale wordpress:
Lorsqu'un utilisateur sélectionne une option dans l'un des menus déroulants, il est dirigé vers la page de résultat de la recherche:
http://mywebsite/wp/?post_type=post&taxonomy=category&terms=29&search_type=or&order=title
Le 29
est la balise recherchée qui correspond à ce que l'utilisateur a sélectionné.
Je fais cette fonctionnalité avec JQuery:
$('select').on('change', function () {
var url = $(this).val(); // get selected value
if (url) { // require a URL
window.location = "http://mywebsite/wp/?post_type=post&taxonomy=category&terms=" + url + "&search_type=or&order=title"; // redirect
}
return false;
});
J'essayais, au lieu de ce qui précède JQuery, d'avoir ceci:
$("#search").click(function(){
var k = $("#mtsw-form-children-term-ids-10 option:selected").val();
var m = $("#mtsw-form-children-term-ids-13 option:selected").val();
var o = $("#mtsw-form-children-term-ids-11 option:selected").val();
alert("Location: " + k + "\nSpecialty: " + m + "\nPhysician: " + o);
//window.location = ; //SEARCH BASED ON LOCATION, and/or SPECIALTY, and/or PHYSICIAN tags
});
J'utilise le widget Sélection multi-terme pour le menu déroulant.
Comment saurais-je si je suis capable d'accomplir cette recherche? Je suis nouveau sur Wordpress alors j'essaie de comprendre le point de départ.
Tout d'abord, arrêtez de réutiliser des catégories et des balises, utilisez plutôt des taxonomies personnalisées. Cela vous donnera:
Personnellement, j'aurais choisi un type de message personnalisé avec des taxonomies de spécialité et d'emplacement. Cependant, je suppose qu’il s’agit d’une manière de filtrer les publications, alors inscrivez-vous à ces taxonomies:
Ensuite, jetez votre javascript et implémentez votre interface sous forme de formulaire.
<form action="" method="GET">
Avec 3 entrées sélectionnées avec ces noms:
Les options de ces entrées de sélection auront des valeurs correspondant aux slug de chaque terme.
Pour des paramètres supplémentaires tels que l'ordre, mettez-les dans une entrée de type caché.
Enfin, ajoutez un bouton d'envoi et nommez-le 'recherche'. Vous devriez maintenant avoir une version non-js de ce que vous vouliez.
Vous devriez aussi avoir ces archives:
Et ces modèles à votre disposition:
pour chaque taxonomie, reportez-vous au diagramme de hiérarchie des modèles lorsque vous choisissez celle que vous souhaitez implémenter.