Tasarımcılar olarak, kullanıcı deneyimi tasarımı (veya kısaca UXD) açısından, kendimizi kullanıcının yerine koymalıyız. Şahsen bunu yaparken, kendimi, tasarımcısı olduğum ürünü ilk elden kullanıcıların zihnine oturtmak için ürünü yaratırken edindiğim deneyim ve düşüncelerden arındırıyorum.
Bunu yaptığımda, arama sonuç sayfasında şunu fark ettim ki; bazen sorgumuz tek bir sonuç getirebiliyor ve bu -güzel olsa da- gayet saçma! Bir aramada yalnızca bir sonuç varsa, neden onu görüntülemekle uğraşıp zaman kaybedesiniz değil mi?
Bir önceki WordPress ipucunda, arama kategorilerini sınırlamaktan bahsetmiştik. Bu sefer sadece 1 gönderi olup olmadığını kontrol etmek için bir adım daha ileri gidiyoruz. Eğer arama sonucunda sadece 1 sonuç varsa da, o sayfaya wp_redirect
ile yönlendirme yapıyoruz.
Sıra geldi kodumuzu yazmaya
Functions.php içinde yeni bir fonksiyon oluşturuyoruz :
// ARAMADA TEK SONUC VARSA, O SONUCU OTOMATIK AC
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 ) );
}
}
}
Hepsi bu kadar. Şu andan itibaren, aramanız tek bir sonuç sorgusu döndürürse, WordPress siteniz o tek sonucu otomatik olarak açacaktır.
Kullandığımız wp_redirect
özelliği hakkında detaylı bilgi için: developer.wordpress.org/reference/hooks/wp_redirect