J'ai deux taxonomies personnalisées appliquées à deux types de publication personnalisés. la liste des termes sur la barre latérale va très bien et listera tous les messages qui lui sont associés. Cependant, si vous recherchez l'un des termes en particulier, il ne fait pas apparaître de message avec ce terme.
Exemple: http://dev.andrewnorcross.com/das/all-case-studies/ Recherche du terme "PQRI"
Je ne reçois rien. Des idées? J'ai essayé d'utiliser divers plugins de recherche, mais ils cassent mes paramètres de recherche personnalisés ou ne fonctionnent tout simplement pas.
custom-post-types
custom-taxonomy
search
Norcross
la source
la source
Réponses:
Je recommanderais également le plugin Search Everything , mais si vous souhaitez l'implémenter à l'aide de la fonction de recherche de WP, voici le code que j'utilise dans mon thème Atom:
Il est basé sur le plugin Tag-Search: http://projects.jesseheap.com/all-projects/wordpress-plugin-tag-search-in-wordpress-23
la source
is_search()
ou tout autre appel de méthode WP_Query (is_search()
is_home()
etc.) doit toujours être appelé directement sur l'instance de requête (par exemple, en$query->is_search()
supposant que le nom de la variable d'instance se trouve$query
dans la signature de rappel) plutôt que sur la fonction de modèle qui fera toujours référence à la requête principale. , pas la requête pour laquelle le filtre s'exécute.Est-ce la recherche WordPress standard? Parce que cela ne semble pas inclure les taxonomies (même pas standard, comme les catégories et les balises) dans la recherche. Le code recherche dans
post_title
etpost_content
, mais si vous voulez inclure autre chose, vous devez vous connecter auposts_search
filtre.la source
J'ai essayé la solution d'Onetrickpony ci-dessus https://wordpress.stackexchange.com/a/5404/37612 , ce qui est génial, mais j'ai trouvé un problème là-bas, qui ne fonctionnait pas pour moi, et j'apporterais une petite modification:
si la taxonomie a des caractères spéciaux, par exemple avec des "trémas" allemands (ö, ä, ü) et que l'on recherche oe, ae, ue insteda d'utiliser le caractère spécial - vous devez ajouter la recherche dans le slug de la taxonomie -
OR t.slug LIKE '%".get_search_query()."%'
si vous recherchez une combinaison d'une requête de recherche et d'un filtre de taxonomie - cela fonctionne également très bien
Mais le problème est que lorsque vous essayez d'utiliser uniquement le filtre de taxonomie - le crochet de recherche ajoute une chaîne vide à la requête si aucun texte n'est recherché, et pour cette raison, vous obtenez TOUTES les publications dans le résultat, au lieu de seulement celles du taxonomie filtrée. Une simple instruction IF résout le problème. Donc, tout le code modifié serait le suivant (fonctionne parfaitement pour moi!)
la source
J'ai le même niveau d'informations que Jan. Je sais qu'il est également possible d'étendre la recherche avec des plugins.
Probablement tout rechercher (plugin Wordpress) est ce que vous recherchez. Selon la liste des fonctionnalités, il prend désormais en charge les taxonomies personnalisées.
la source
J'ai trouvé la réponse de onetrickpony excellente, mais elle traite toute recherche comme un seul terme et ne traite pas non plus d'une expression de recherche entourée de guillemets. J'ai un peu modifié son code (en particulier, la
atom_search_where
fonction) pour faire face à ces deux situations. Voici ma version modifiée de son code:la source
J'ai le même problème avec le plugin de panier WooCommerce .. Mes résultats de recherche n'incluent pas le terme de taxonomie personnalisé, 'product_tag', car ce n'est pas une balise de publication standard. J'ai trouvé une solution dans cet autre thread StackOverflow à ce sujet:
https://stackoverflow.com/questions/13491828/how-to-amend-wordpress-search-so-it-queries-taxonomy-terms-and-category-terms
L'exemple de code de tkelly a fonctionné pour moi lors du remplacement du terme
author
dans son exemple parproduct_tag
selon nos besoins pour les plugins de panier.la source