Kategoriler
Blog

WordPress arama sonucu 1 adet ise otomatik yönlendir

Bu fonksiyon yapılan arama sorgusunda eğer sonuç olarak 1 post varsa otomatik olarak o post adresine yönlendirme yapar. Mantık olarak sadece 1 sonucun gösterileceği arama sonucu sayfası zaten kullanışlı değil, ziyaretçinin otomatik olarak çıkan tek sonuca yönlendirilmesi iyi fikir.

wpmug - wordpress


Fonksiyonu temanızın functions.php dosyası içerisine yazarsanız çalışır.

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 ) );
        }
    }
}

Diğer başka bir fonksiyonda arama terimini yazı veya sayfaların başlıklarındaki kelimelerle eşleşirse o yazıya yönlendiriyor.

add_action('template_redirect', 'ara_match_redirect');
function ara_match_redirect() {
		if ( is_search() && strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === false && strpos($_SERVER['REQUEST_URI'], '/search/') === false ) {
		 global $wp_query;
		 if ( get_page_by_title( get_search_query(), 'OBJECT', 'post' ) ) {
            wp_redirect( get_permalink( get_page_by_title (get_search_query() )->ID ) );
			 }
        elseif ( get_page_by_title( get_search_query(), 'OBJECT', 'page' ) ) {
            wp_redirect( get_permalink( get_page_by_title( get_search_query() )->ID ) );
        } else {
		wp_redirect(get_bloginfo('home') . '/search/' . artiaralink(get_query_var('s')));
		}
		exit();
	}
}

Afiyet olsun.