WordPress araması hakkında bir önceki yazımda “WordPress arama sonuçlarında Google aramayı kullanmak” başlığında aramalarda Google kullanmayı göstermiştim.
Bu yazımda bahsedeceğim şey; kullanıcı eğer sitede var olan bir kategoriyi veya etiketi ararsa ilgili kategori/etikete yönlendirilmesi hakkında olacak.
Aşağıda vereceğim fonksiyonları isterseniz hepsini birden isterseniz bir kısmını kullanabilirsiniz. Sitenizin yapısı, ek kullandığınız taxonomys ve WooCommerce gibi eklentiler kullanıyor olmanıza bağlı olarak dilediğiniz gibi kullanabilirsiniz.
Arama terimi kategori ismi ile eşleşiyor ise:
add_filter('request', 'arama_eger_kategori_ise');
function arama_eger_kategori_ise($query){
if(!empty($query['s'])): //arama sorgusu var ise
$searchQ = $query['s']; //arama sorgusu
if(term_exists($searchQ,'category')){//Kategori ile eşleşir ise
$KategoriURL = get_term_link($searchQ, 'category'); //Kategori URL
wp_safe_redirect($KategoriURL, 302, 'Search' ); exit(); //Yönlendir
}
endif;
//Değilse yola devam
return $query;
}
Arama terimi bir etiket ile eşleşir ise:
add_filter('request', 'arama_eger_kategori_ise');
function arama_eger_kategori_ise($query){
if(!empty($query['s'])): //arama sorgusu var ise
$searchQ = $query['s']; //arama sorgusu
if(term_exists($searchQ,'post_tag')){//Etiket ile eşleşir ise
$EtiketURL = get_term_link($searchQ, 'post_tag'); //Etiket URL
wp_safe_redirect($EtiketURL, 302, 'Search' ); exit(); //Yönlendir
}
endif;
//Değilse yola devam
return $query;
}
Arama sorgusu bir ürün etiketi ile eşleşir ise:
add_filter('request', 'arama_eger_urun_etiketi_ise');
function arama_eger_urun_etiketi_ise($query){
if(!empty($query['s'])): //arama sorgusu var ise
$searchQ = $query['s']; //arama sorgusu
if(term_exists($searchQ,'product_tag')){//Ürün etiketi ile eşleşir ise
$Turl = get_term_link($searchQ, 'product_tag'); //Ürün URL
wp_safe_redirect( $Turl ); exit(); //Yönlendir
}
endif;
//Değilse yola devam
return $query;
}
Test etmek için bu blogda “wordpress” araması yapın.
Umarım işinize yarar, kolay gelsin.