Mam dwie niestandardowe taksonomie zastosowane do dwóch niestandardowych typów postów. lista terminów na pasku bocznym jest w porządku i zawiera listę wszystkich powiązanych z nią postów. Jeśli jednak przeszukujesz jeden z określonych terminów, nie pojawi się post z tym terminem.
Przykład: http://dev.andrewnorcross.com/das/all-case-studies/ Wyszukaj termin „PQRI”
Nic nie dostaję Jakieś pomysły? Próbowałem używać różnych wtyczek wyszukiwania, ale albo psują moje niestandardowe parametry wyszukiwania, albo po prostu nie działają.
custom-post-types
custom-taxonomy
search
Norcross
źródło
źródło
Odpowiedzi:
Polecam również wtyczkę Search Everything , ale jeśli chcesz to zaimplementować za pomocą funkcji wyszukiwania WP, oto kod, którego używam w moim motywie Atom:
Opiera się na wtyczce Tag-Search: http://projects.jesseheap.com/all-projects/wordpress-plugin-tag-search-in-wordpress-23
źródło
is_search()
lub inne wywołania metod WP_Query (is_search()
is_home()
itp.) Powinny zawsze być wywoływane bezpośrednio w instancji zapytania (np.$query->is_search()
Zakładając, że nazwa zmiennej instancji znajduje się$query
w sygnaturze wywołania zwrotnego), a nie funkcja szablonu, która zawsze będzie odnosić się do głównego zapytania , a nie zapytanie, dla którego działa filtr.Czy to standardowe wyszukiwanie WordPress? Ponieważ wydaje się, że nie obejmuje to taksonomii (nawet standardowych, takich jak kategorie i tagi) w wyszukiwaniu. Kod przeszukuje
post_title
ipost_content
, ale jeśli chcesz dołączyć coś jeszcze, powinieneś podłączyć się doposts_search
filtra.źródło
Wypróbowałem rozwiązanie Onetrickpony powyżej https://wordpress.stackexchange.com/a/5404/37612 , co jest świetne, ale znalazłem tam jeden problem, który nie działał dla mnie, i zrobiłbym jedną małą modyfikację:
jeśli taksonomia ma znaki specjalne, np. z niemieckimi „Umlautami” (ö, ä, ü) i ktoś szuka oe, ae, ue insteda użycia znaku specjalnego - należy dodać wyszukiwanie do informacji o taksonomii -
OR t.slug LIKE '%".get_search_query()."%'
jeśli szukasz kombinacji zapytania wyszukiwania i filtru taksonomii - to również działa dobrze
Problem polega jednak na tym, że gdy próbujesz użyć tylko filtru taksonomii - haczyk wyszukiwania dołącza do zapytania pusty ciąg, jeśli nie jest wyszukiwany tekst, i dlatego w wyniku otrzymujesz WSZYSTKIE posty, a nie tylko te z filtrowana taksonomia. Prosta instrukcja IF rozwiązuje problem. Cały zmodyfikowany kod byłby taki (działa dla mnie idealnie!)
źródło
Mam taki sam poziom informacji jak Jan. Wiem, że można również rozszerzyć wyszukiwanie za pomocą wtyczek.
Prawdopodobnie szukasz wszystkiego (Wordpress Plugin) jest tym, czego szukasz. Zgodnie z listą funkcji obsługuje teraz niestandardowe taksonomie.
źródło
Uważam, że odpowiedź z onetrickpony jest świetna, ale traktuje każde wyszukiwanie jako pojedynczy termin, a także nie zajmuje się wyszukiwaną frazą opatrzoną cudzysłowem. Zmodyfikowałem
atom_search_where
nieco jego kod (konkretnie funkcję), aby poradzić sobie z tymi dwiema sytuacjami. Oto moja zmodyfikowana wersja jego kodu:źródło
Mam ten sam problem z wtyczką koszyka WooCommerce. Moje wyniki wyszukiwania nie zawierają niestandardowego terminu taksonomii „product_tag”, ponieważ nie jest to standardowy znacznik pocztowy. Znalazłem rozwiązanie w tym innym wątku StackOverflow na ten temat:
https://stackoverflow.com/questions/13491828/how-to-amend-wordpress-search-so-it-queries-taxonomy-terms-and-category-terms
Przykład kodu tkelly zadziałał dla mnie, zastępując termin
author
w jego przykładzie,product_tag
zgodnie z naszymi potrzebami dotyczącymi wtyczek kart.źródło