Jak przekierować do pojedynczego posta w wynikach wyszukiwania WordPress?
WordPress ma wbudowaną funkcję wyszukiwania i możesz wpisać /?s=Key po lokalizacji głównej wordpress. Czasami jednak, jeśli jest tylko 1 wynik, np. użytkownik wie, czego szukać, lepiej od razu przejść do tego konkretnego postu bez pokazywania strony wyszukiwania. To z pewnością poprawi wrażenia użytkownika. To jest trochę "szczęśliwy" przycisk, ale działa tylko wtedy, gdy jest tylko jeden pasujący wynik.
Więc po prostu skopiuj następujący kod PHP na końcu szablonu motywu wordpress (lepiej używając motywów potomnych ), tj. functions.php.
add_action('template_redirect', 'redirect_single_post_from_search');
function redirect_single_post_from_search() {
if (is_search()) { // if it is a search page
global $wp_query;
if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) { // if only 1 result
wp_redirect( get_permalink( $wp_query->posts['0']->ID) ); // go to that page
exit;
}
}
}
To szybki dodatek! Bez wymyślnych wtyczek i działa jak urok!