lostyazilim
tr.link

Wordpress Detaylı Arama Yapımı ve Gerekli Tüm Kod ve Açıklamaları

7 Mesajlar 2.236 Okunma
lstbozum
tr.link

wptr wptr Wordpress Uzmanı Kullanıcı
  • Üyelik 18.04.2014
  • Yaş/Cinsiyet 35 / E
  • Meslek Wordpress Uzmanı
  • Konum Adana
  • Ad Soyad O** Ö**
  • Mesajlar 91
  • Beğeniler 30 / 13
  • Ticaret 2, (%100)
Wordpress bana göre günümüz web teknolojileri arasındaki en kapsamlı sistemlerden birisidir... Bu sistem ile yapabilecekleriniz hayal dünyanız ile sınırlı; en azından benim için öyle :)

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:



  1. Emlak ve ilan sistemleri

  2. Detaylı arama gerekli alışveriş sistemleri

  3. 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 "" vardır...

Bu veriler daha önce verdiğim script kodlarına bilgi göndererek sıramanın nasıl yapılacağını php $_GET[] metodu ile belirliyor...

Peki bu metodu şimdi nasıl sıralamada kullanacağız ? Öncelikle yukarıdaki html kodları ile javascript kodlarından alınan verileri php kodlarına yansıtalım...


$siralama = $_GET["siralama"];
if($siralama == "") {
$siralama = "DESC";
} else {
$siralama = $siralama;
}
$siralama_onceligi = $_GET['oncelik'];
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} else if ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}
if($siralama_onceligi == "ad") {
$args = array(
'post_type' => 'post',
'orderby' => 'title',
'order' => $siralama,
'paged' => $paged
);
} elseif($siralama_onceligi == "tarih") {
$args = array(
'post_type' => 'post',
'orderby' => 'date',
'order' => $siralama,
'paged' => $paged
);
} else {
$args = array(
'post_type' => 'post',
'paged' => $paged
);
}
query_posts($args);
?>


Yukarıdaki kodda html ve javascriptten gelen verileri kullandık. Şimdi bu veriler ne anlama geliyor;

$siralama = $_GET["siralama"];

Bu kod verilerin çoktan aza mı yoksa azdan çoğa doğru mu sıralanacağının bilgisini almaktadır...

$siralama_onceligi = $_GET['oncelik'];

Bu kod tarihe göre mi yoksa ada göre mi sıranacağının bilgisini almaktadır...

Sizler bu kodlara göre kendi temanıza göre uyarladığınız takdirde istediğiniz sonucu alabileceksiniz...

Bu dersin devamını ve daha detaylı arama sistemini 2. derste anlatacağım...

Şimdiden saygılarım ile ;)
 

 

wmaraci
reklam

Vee Vee WM Aracı Kullanıcı
  • Üyelik 31.03.2012
  • Yaş/Cinsiyet 33 / E
  • Meslek seo
  • Konum
  • Ad Soyad A** K**
  • Mesajlar 181
  • Beğeniler 3 / 30
  • Ticaret 1, (%100)
Demo koyarmısın hocam :)
 

 

wptr wptr Wordpress Uzmanı Kullanıcı
  • Üyelik 18.04.2014
  • Yaş/Cinsiyet 35 / E
  • Meslek Wordpress Uzmanı
  • Konum Adana
  • Ad Soyad O** Ö**
  • Mesajlar 91
  • Beğeniler 30 / 13
  • Ticaret 2, (%100)

Vee adlı üyeden alıntı

Demo koyarmısın hocam :)


http://emlakilanlari.me.cf/?s=a burdan detaylı ilan arayabilirsiniz. Bu sistemin aynısıdır...
 

 

melankolia melankolia Uzun Yollara Devam Kullanıcı
  • Üyelik 16.06.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Dijital Baskı Operatörü
  • Konum Bursa
  • Ad Soyad C** K**
  • Mesajlar 4577
  • Beğeniler 1011 / 1012
  • Ticaret 3, (%100)
Hocam anlatım için sağolun benim bir sorum olacaktı bu site içi yapılan aramaları googlede nasıl indexletebilirim.Örneğin kullanıcı x marka diye arama yapınca googlede de x marka diye aratında siteismi.com/?s=sagopa diye nasıl çıkartabiliriz daha önce forumda bir arkadaş .robots dosyasına izin vererek demişti ama internette ne yazacağımı bulamamıştım bilginiz varsa bu konuda aydınlatabilirmisiniz.
wptr

kişi bu mesajı beğendi.

wmaraci
wmaraci

wptr wptr Wordpress Uzmanı Kullanıcı
  • Üyelik 18.04.2014
  • Yaş/Cinsiyet 35 / E
  • Meslek Wordpress Uzmanı
  • Konum Adana
  • Ad Soyad O** Ö**
  • Mesajlar 91
  • Beğeniler 30 / 13
  • Ticaret 2, (%100)

melankolia adlı üyeden alıntı

Hocam anlatım için sağolun benim bir sorum olacaktı bu site içi yapılan aramaları googlede nasıl indexletebilirim.Örneğin kullanıcı x marka diye arama yapınca googlede de x marka diye aratında siteismi.com/?s=sagopa diye nasıl çıkartabiliriz daha önce forumda bir arkadaş .robots dosyasına izin vererek demişti ama internette ne yazacağımı bulamamıştım bilginiz varsa bu konuda aydınlatabilirmisiniz.


arama kelimelerini veritabanına kaydettirirp o kayıtlara özel bir sitemap oluşturulursa google tarafından index alabilirsin.

Bu sistemi tag sistemi gibi oluşturabilir ve en çok arama yapılan kelimeleri istediğin her yerde gösterebilir ve sitende değişik bir fark ortaya katabilirsin...
 

 

Ody Ody WM Aracı Kullanıcı
  • Üyelik 24.04.2014
  • Yaş/Cinsiyet 36 / E
  • Meslek xxx
  • Konum İstanbul Anadolu
  • Ad Soyad Y** K**
  • Mesajlar 258
  • Beğeniler 123 / 71
  • Ticaret 8, (%100)
Yeni başlayanlar için güzel anlatım
wptr

kişi bu mesajı beğendi.

xxxxx

mimarcan mimarcan Mimar Kullanıcı
  • Üyelik 11.01.2013
  • Yaş/Cinsiyet 40 / E
  • Meslek Mimar
  • Konum İstanbul Anadolu
  • Ad Soyad İ** Y**
  • Mesajlar 663
  • Beğeniler 1244 / 182
  • Ticaret 2, (%50)
Merhaba;

Yan taraftaki içeriğe göre aramayı da anlatma imkanınız olabilir mi?

Teşekkür ederim.
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al