Chciałbym zbudować zaawansowany formularz wyszukiwania dla konkretnego niestandardowego typu postu, zawierający filtry dla niestandardowych pól niestandardowych typów, taksonomii niestandardowych i dla osobnych właściwości niestandardowych typów wpisów (pól i taksonomii), które będą linkami do pierwszego typ wpisu za pomocą niestandardowego pola relacji.
Niedawno zacząłem od niestandardowych typów postów, pól i systematyki WP, do tej pory uwielbiam to, ale aby jak najlepiej to zrobić, chciałbym móc go poprawnie przeszukać. Czy muszę to zrobić ręcznie? Jeśli tak to jak?
PS. Jeśli to ważne, używam wtyczek: Advanced Custom Fields i Custom Post Type UI .
Poniżej przedstawiłem przykładowy wygląd filtrowania i jego związek z powyższymi typami postów.
Odpowiedzi:
Myślę, że coś takiego najlepiej napisałbyś sam.
Spójrz na: http://www.catalysthomes.co.uk/homes-for-sale/
Właściwości są ładowane do CPT i mam własne wyszukiwanie na pasku bocznym. Z tego wyszukiwania przeszukuje szereg rzeczy, takich jak taksonomie, pola niestandardowe i porządkowanie według ceny według daty itp.
Jak to osiągnąć? Przesyłam formularz do szablonu strony, a następnie zajmuję się danymi postu i tworzę nowe WP_query na podstawie kryteriów wyszukiwania. Używam sesji do przechowywania zmiennych wyszukiwania, dzięki czemu mogę paginować wyniki.
WP_Query jest bardzo potężny. Spójrz: http://codex.wordpress.org/Class_Reference/WP_Query
Tam możesz użyć
meta_query
do zapytania do wielu niestandardowych pól i użyćtax_query
do zapytania o taksonomie, a ponadto jest więcej. Poniżej przedstawiamy, jak zbudowano mój, aby dać ci pomysł.Plik szablonu:
Surowe wyniki
Wyniki wyszukiwania
Układ listy Po prostu standardowa pętla WP wyświetlająca fragmenty postów i informacje.
źródło
Wypróbuj wtyczkę Taxonomy Picker razem z Relevanssi. Kombinacja zabójców.
http://www.squidoo.com/taxonomy-picker-wordpress-plugin http://wordpress.org/extend/plugins/relevanssi/
źródło
Spójrz na wtyczkę Relevanssi, może zrobić to, czego szukasz: http://wordpress.org/extend/plugins/relevanssi/
źródło
Jeśli ktoś ma trudności z implementacją powyższego rozwiązania Brady'ego (tak jak ja), oto wskazówka: Wygląda na to, że WordPress ma pewne problemy z przekazywaniem danych sesji, więc prawdopodobnie będziesz musiał zrobić coś dodatkowego, aby działało poprawnie. Zagadnienia zostały omówione tutaj
W functions.php:
W twoim szablonie:
Zainstalowanie wtyczki Petera Woostera „ Simple Session Support ” załatwiło sprawę.
źródło