Czasami podczas przeszukiwania bloga WordPress, w wynikach pojawia się tylko jeden element. W zależności od tego, jak zorganizowana jest Twoja strona, powinien to być element, którego użytkownik szukał. Jeden z naszych użytkowników zapytał, czy istnieje sposób na przekierowanie do posta, jeśli wyniki wyszukiwania zawierają tylko jedno dopasowanie. W tym artykule pokażemy Ci, jak przekierować użytkowników do posta, gdy zapytanie wyszukiwania zwraca tylko jedno dopasowanie.
Wszystko, co musisz zrobić, to otworzyć plik functions.php swojego motywu i wkleić poniższy fragment.
add_action('template_redirect', 'one_match_redirect');
function one_match_redirect() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 1) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
}
}
}
Teraz musisz uważać, że niektórzy użytkownicy nie będą oczekiwać tej funkcjonalności. Może ich to przestraszyć.

Casey Lessard
U mnie zadziałało. Prowadzę lokalną wyszukiwarkę na WordPressie i od jakiegoś czasu szukałem tego rozwiązania. Działa dokładnie tak, jak opisano. Bardzo dziękuję!
Eric
Chciałbym zrobić tak, aby po wyszukaniu przez kogoś konkretnego frazy, następowało przekierowanie do "easter egga", na przykład jeśli ktoś wyszuka "Widzę martwych ludzi", zostanie przekierowany na zdefiniowany przeze mnie adres URL.
Nebulas Website Design
Dziękuję za ten fragment kodu, mój klient był bardzo zadowolony i nie sądziłem, że jest to możliwe. Jednak u nas nie działa, używamy wtyczki Relevanssi. Czy powinna ona działać z tym?
carlos
Co jeśli chcę przekierować dowolne zapytanie wyszukiwania do najbardziej trafnego posta, niezależnie od liczby zwracanych postów? Naprawdę chciałbym móc to zrobić.
Personel redakcyjny
Usuń warunek "if" z powyższego kodu, a powinno zadziałać.
Admin
CalebZahnd
To jest przydatne. Dzięki!