Utworzyłem niestandardowy typ posta i dołączyłem do niego niektóre niestandardowe pola. Teraz chciałbym, aby wyszukiwanie, które autorzy mogą przeprowadzić na niestandardowym ekranie listy postów (w zapleczu administratora), zostało przeprowadzone również na polach meta, a nie tylko jak zwykle w tytule i treści.
Gdzie mogę się podłączyć i jakiego kodu muszę użyć?
Przykładowy obraz
Stefano
custom-post-types
custom-field
search
Stefano
źródło
źródło
Odpowiedzi:
Rozwiązałem filtrowanie zapytania, dodając złączenie w tabeli postmeta i zmieniając klauzulę where. wskazówki dotyczące filtrowania klauzuli WHERE (często wymagają wyszukiwania i zamiany wyrażeń regularnych) znajdują się w kodeksie :
źródło
Odpowiedź Stefano jest świetna, ale brakuje w niej wyraźnej klauzuli:
Dodaj powyższy kod, zaktualizuj go i będzie działać bez duplikatów.
źródło
To zadziała,
źródło
if ( $query->query['post_type'] != 'your_custom_post_type' ){ return; }
góry u góry funkcji spowoduje, że nie będzie można go uruchomić podczas innych wyszukiwań. Zauważ, że technika opisana w tej odpowiedzi nie przeszukuje już post_title, a dodanie tego z powrotem nie jest trywialne.get_search_query()
które wywołują kolejneget_query_var( 's' )
. Ponieważ „s” jest ustawiony na pusty ciąg, wyniki wyszukiwania dla „” zawsze będą miały pustą wartość między cudzysłowami. Czy istnieje poprawka do tego rozwiązania, która obejdzie ten problem?Odpowiedź 1: Dodaj ten kod do pliku funkcji oraz zmień i dodaj więcej kolumn, których użyłeś w swoim niestandardowym typie postu
Odpowiedź 2: Zalecane Użyj tego kodu w pliku funkcji bez żadnych zmian
źródło
Nie jest to wyszukiwanie, ale niektóre „wybierają” według odrębnej wartości.
W funkcjach plików- iworks-posts-filter.zip Masz przykład, jak dodać filtr do zwykłego postu przez jakiś klucz meta_key. Myślę, że łatwo to przekonwertować.
źródło
Wersja kodu tutaj w kilku odpowiedziach, która modyfikuje parametr meta_query WP_Query wyszukiwania w pre_get_posts, nie szukała już post_title. Dodanie możliwości przeszukiwania tytułu postu LUB meta wartości nie może być wykonane bezpośrednio w WP_Query bez modyfikacji SQL niestety, ponieważ to pytanie rozwija się w następujący sposób: Używanie kwerendy meta („meta_query”) z zapytaniem („s”)
Połączyłem tutaj niektóre techniki, aby uzyskać działającą wersję, która unika preg_replaces i zbyt dużej modyfikacji SQL (chciałbym, żeby można było tego całkowicie uniknąć). Jedynym minusem jest to, że po wyszukiwaniu tekst napisów u góry strony mówi „Wyniki wyszukiwania dla„ ”. Właśnie ukryłem to w CSS dla niestandardowego typu postu mojej wtyczki.
źródło