Tworzenie własnego niestandardowego wyszukiwania WordPress
Wyszukiwanie w WordPressie od lat uważane jest za niedoskonałe, co sprawia, że wiele osób próbuje poprawić tę funkcjonalność za pomocą różnych wtyczek. Choć istnieją różnorodne rozszerzenia, często nie spełniają one specyficznych wymagań użytkowników, szczególnie gdy celem jest stworzenie drugiego silnika wyszukiwania z określonymi funkcjami.
W tym artykule dowiesz się, jak prosto zbudować własne niestandardowe wyszukiwanie w WordPressie oraz odkryjesz kilka zaskakujących tajemnic wyszukiwania w tej platformie.
Rozwój
Jak działa wyszukiwanie w WordPressie
Wszystko, co dotyczy wyszukiwania w WordPressie, opiera się na klasie WP_Query. Osoby, które miały już do czynienia z niestandardowymi pętlami, najprawdopodobniej są już zaznajomione z tym narzędziem. WP_Query oferuje wiele parametrów, które można określić w formularzu wyszukiwania lub bezpośrednio w adresie URL, aby zmienić zachowanie wyszukiwania.
Na przykład, aby przekształcić standardowe wyszukiwanie w wyszukiwanie po niestandardowym typie postu o nazwie ‘product’, wystarczy użyć następującego adresu URL:
http://www.yoursite.com/?s=football&post_type=product
Powyższe znacznie ograniczy wyniki do postów ‘product’, gdzie tytuł lub treść zawiera słowo ‘football’.
Rozszerzanie możliwości wyszukiwania
Warto zaznaczyć, że WordPress domyślnie wyszukuje według słów kluczowych. Na przykład, jeśli wprowadzić zapytanie ‘football boots’, zapytanie w bazie danych będzie wyglądać następująco:
((wp_posts.post_title LIKE '%football%') OR (wp_posts.post_content LIKE '%football%')) AND ((wp_posts.post_title LIKE '%boots%') OR (wp_posts.post_content LIKE '%boots%'))
Takie zobrazowanie nie jest wyszukiwaniem frazowym. Można jednak przekształcić wyszukiwanie súcztrwając &sentence=1
do adresu URL, co zmienia zapytanie na:
((wp_posts.post_title LIKE '%football boots%') OR (wp_posts.post_content LIKE '%football boots%'))
Teraz wyszukiwanie dotyczy całej frazy i wyników dotyczących tylko tych, które mają w tytule lub treści “football boots”.
Wyszukiwanie dokładne
Kolejnym ciekawym parametrem, który możemy dodać, to exact=1
. Sprawi to, że zapytanie będzie wyglądać tak:
((wp_posts.post_title LIKE 'football boots') OR (wp_posts.post_content LIKE 'football boots'))
Tutaj usunięcie procentów z zapytania powoduje, że musi ono odpowiadać dokładnie wyszukiwanemu zwrotowi, aby pojawić się w wynikach.
Dostosowywanie formularza wyszukiwania
Domyślny formularz wyszukiwania w WordPressie może być niezwykle prosty. Możemy jednak dostosować jego działanie, dodając dodatkowe pola do formularza. W ten sposób możemy uzyskać bardziej precyzyjne wyniki wyszukiwania.
Przykładowy formularz wyszukiwania może wyglądać następująco:
“`
<form method="get" action="”>
<input type="text" name="s" id="search" value="” />
Jako wynik powyższego formularza otrzymamy następujący adres URL:
http://www.test.dev/?s={query}&sentence=1&post_type=product
“`
To spowoduje, że strona wyszukiwania wyświetli wyniki postów typu ‘product’, które zawierają daną frazę.
Kiedy formularz niestandardowy nie wystarcza
Pomimo pewnych możliwości, czasami musimy zbudować WP_Query samodzielnie, zwłaszcza jeśli tworzymy drugi silnik wyszukiwania.
Przykład przypadku
Rozważmy przykład dotyczący e-commerce, który sprzedaje zarówno towary fizyczne, jak i cyfrowe. Wśród produktów cyfrowych znajdują się archiwalne numery czasopism oraz broszury w wersji papierowej i cyfrowej. Zostało wprowadzone nowe wyszukiwanie, które miało pozwolić użytkownikom na przeszukiwanie magazynów i broszur w poszukiwaniu konkretnych fraz.
Wyprowadzenie wyników wyszukiwania
Kiedy uruchomimy WP_Query, musimy outputować wyniki wyszukiwania. Możliwości wyświetlania są różne. Możemy np. podświetlić frazy, które zostały znalezione, co poprawi doświadczenia użytkownika.
Podświetlenie można osiągnąć za pomocą prostego wyrażenia regularnego, ale wydobycie tekstu, który zawiera szukane frazy, może być trudniejsze. Najczęściej wykorzystuje się podejście programistyczne, aby dopasować odpowiednie elementy.
Podsumowanie
Budowanie niestandardowego wyszukiwania w WordPressie jest proste i daje użytkownikom większą kontrolę nad wynikami. Może to być szczególnie użyteczne, gdy istnieje potrzeba wprowadzenia drugiej funkcji wyszukiwania obok standardowej. Przed przystąpieniem do kodowania warto przetestować odpowiednie parametry, aby ocenić, czy przy odpowiednich konfiguracjach można osiągnąć pożądane rezultaty za pomocą wbudowanej funkcji wyszukiwania. Dzięki wielości dostępnych parametrów twórca ma możliwość uzyskania jeszcze lepszych wyników.
Opinie
Na razie nie ma opinii o produkcie.