Bugün sizler ile Wordpress'in paylaşılmamış detaylı arama sistemi hakkında konuşacağım ve tüm bilgilerimi buraya aktaracağım. Eminim ki bu sistemi bir çok kişi aramıştır lakin sitelerde kesin bir bilgiye rastlamamıştır. Lakin bugün sadece *** üyelerine özel bu özelliği en detaylı bir şekilde anlatmaya çaışacağım.
Demo: http://emlakilanlari.me.cf/?s=a burdan detaylı ilan arayabilirsiniz. Bu sistemin aynısıdır...
Sistemin kullanılacağı alanlar:
- Emlak ve ilan sistemleri
- Detaylı arama gerekli alışveriş sistemleri
- Detaylı arama katarak kullanıcılarına kolaylık sağlamak isteyen tüm blog, video ve oyun sistemleri
Sistemin Kurulması
Öncelikle tema klasörünüzde var olan "search.php" dosyanızı açın...
Yukarıda belirtilen kodun hemen üzerine;
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} else if ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}
$args = array(
'post_type' => 'post',
'orderby' => 'title',
'order' => DESC,
'paged' => $paged
);
query_posts($args);
?>
Daha sonra ise eğer pagenavi gibi bir eklenti kullanıyor isek bu eklenti kodlarının hemen altına ise;
Yukarıdaki kodu ekleyerek ilk kurulumu bitirmiş olduk. Şimdi ise yukarıdaki kodun ne manaya geldiğini tek tek açıklayacağım...
$args = array(
'post_type' => 'post',
'orderby' => 'title',
'order' => DESC,
'paged' => $paged
);
?>
Yukarıdaki kodun manası; tüm aranılan yazıların sıralamasını bşlığına göre "z"den "a"ya doğru yap demektir. Biz eğer "DESC" yerine "ASC" yazarsak tüm yazıları "a"dan "z"ye doğru sıralar.
Şimdi biz eğer 'orderby' =>title yerine 'orderby' => date yazarsak bu sefer sıralamaları tarihe göre yapar. Burda sıralamayı yeniden eskiye doğru yapmak için 'order' => DESC olmalıdır eğerki eski tarihten yeni tarihe doğru sıralama istiyorsak yazılarımızı bu sefer 'order' => ASC olması gerek...
Bu tüm aramalar için yapılan sıralama işlemiydi. Şimdi bu sıralama işlemini dinamik hale getirmesini göstereceğim...
Dinamik sıralama yöntemi:
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} else if ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}
$args = array(
'post_type' => 'post',
'orderby' => 'title',
'order' => DESC,
'paged' => $paged
);
query_posts($args);
?>
Yukarıdaki kodu daha önce sistemimizi oluşturmak için eklemiştil. Şimdi ise bu kodun üzerine ise ;
<script>
jQuery(document).ready(function($) {
function insertParam(key, value)
{
key = escape(key); value = escape(value);
var kvp = document.location.search.substr(1).split('&');
var i=kvp.length; var x; while(i--)
{
x = kvp[i].split('=');
if (x[0]==key)
{
x[1] = value;
kvp[i] = x.join('=');
break;
}
}
if(i<0) {kvp[kvp.length] = [key,value].join('=');}
//this will reload the page, it's likely better to store this until finished
document.location.search = kvp.join('&');
}
function removeParameter(url, parameter)
{
var urlparts= url.split('?');
if (urlparts.length>=2)
{
var urlBase=urlparts.shift(); //get first part, and remove from array
var queryString=urlparts.join("?"); //join it back up
var prefix = encodeURIComponent(parameter)+'=';
var pars = queryString.split(/[&;]/g);
for (var i= pars.length; i-->0;) //reverse iteration as may be destructive
if (pars[i].lastIndexOf(prefix, 0)!==-1) //idiom for string.startsWith
pars.splice(i, 1);
url = urlBase+'?'+pars.join('&');
}
return url;
}
$('select[name=oncelik]').change(function() {
var current_option = $(this).find('option:selected').val();
if(current_option == 'ad') {
insertParam('oncelik', 'ad')
} else if(current_option == 'tarih') {
insertParam('oncelik', 'tarih')
} else if(current_option == 'fiyat') {
insertParam('oncelik', 'fiyat')
}
});
$('select[name=siralama]').change(function() {
var current_option = $(this).find('option:selected').val();
if(current_option == 'DESC') {
insertParam('siralama', 'DESC')
} else if(current_option == 'ASC') {
insertParam('siralama', 'ASC')
}
});
});
</script>
Yukarıdaki kodu ekleyelim... Yukarıdaki kod sıralamamızı dinamik hale getirmek için kullanacağınız. Şimdi bu kodu yaptıktan sonra bu koda uygun html kodu oluşturmalıyız ve daha sonra bu konuyu toparlayacağım...
Yukarıdaki kod dinamik sıralama yapmak için sadece örnek bir kod olup siz bu kodu kendi temanıza uyarlayabilirsiniz örnek alarak...
Şimdi Yukarıdaki kodda sıralama yapmak için "