WordPress 20 Nisan 2012

Gelişmiş Arama Formu Ekleme

\"searchŞu ana kadar birçok yazı türü içeren bir wordpress site de çalıştınız mı? WordPress araması rezalet bir şeydir. Bu nedenden dolayı birçok blogcu Google Özel Arama’yı kullanır. Biz, daha önce içinde araştırma makaleleri, videolar, kitaplar ve blog yazıları olan bir site üzerinde çalışıyorduk. Varsayılan wordpress aramasını kullanıyorken onu bırakamadık. Google aramasını kullanmak, geçerli bir seçenek değildi. Buna ek olarak, gelişmiş bir arama formu kullanmaya karar verdik. Bu form, kullanıcılarına sitenin hangi alanlarda sınırlı özel yazı türleri ile checkbox üzerinden bilgi toplamalarını sağlar. Kullanıcılar onların arama sorgularını birleştirebilir. Daha önemlisi arama sorguları ile bunları daha güvenilir bir hale getirdik. Bu, kullanıcısına tam olarak neyi aradığını gösterir ve kullanıcı parametreler üzerinde değişiklik yapabilir. Bu makalede, gelişmiş bir arama formunun nasıl oluşturulacağını göstereceğiz. Böylece WordPress ‘in gücünden yararlanıyoruz. Arama sorguları ve sınırlı arama sonuçlarından bahsediyoruz.

Öncelikle, \”searchform.php\” dosyasını veya arama formunun bulunduğu sayfanızı açın. Sonra form kodları içine aşağıdaki alanları ekle:

<input type="hidden" name="post_type[]" value="articles" />
<input type="hidden" name="post_type[]" value="post" />
<input type="hidden" name="post_type[]" value="videos" />
<input type="hidden" name="post_type[]" value="books" />

Value etiketini kendi özel yazı türlerinle değiştirmeyi unutma! Üstteki kod, temel olarak arama sonuçlarınızı sınırlar. Sonrası için ne yapacağımız hakkında güzel bir nedenimiz var. Ana arama butonunu kullanmak için tüm özel yazı türlerini eklediğinden emin olmalısın. Bu alanlar gizlidir, kullanıcılar göremez.

Bunu da Oku:  Video: WampServer Kurulumu

Sonra \”search.php\” dosyasını aç ve aşağıdaki kodları içerik döngüsüne ekle. Böylece kullanıcılar, yukarıdaki seçenekleri görebilsin.

<form role="search" method="get" id="searchform" action="<?php echo home_url( \'/\' ); ?>">
<input type="text" name="s" id="s" <?php if(is_search()) { ?>value="<?php the_search_query(); ?>" <?php } else { ?>value="Enter keywords &hellip;" onfocus="if(this.value==this.defaultValue)this.value=\'\';" onblur="if(this.value==\'\')this.value=this.defaultValue;"<?php } ?> /><br />
<?php $query_types = get_query_var(\'post_type\'); ?>
<input type="checkbox" name="post_type[]" value="articles" <?php if (in_array(\'articles\', $query_types)) { echo \'checked="checked"\'; } ?> /><label>Articles</label>
<input type="checkbox" name="post_type[]" value="post" <?php if (in_array(\'post\', $query_types)) { echo \'checked="checked"\'; } ?> /><label>Blog</label>
<input type="checkbox" name="post_type[]" value="books" <?php if (in_array(\'books\', $query_types)) { echo \'checked="checked"\'; } ?> /><label>Books</label>
<input type="checkbox" name="post_type[]" value="videos" <?php if (in_array(\'videos\', $query_types)) { echo \'checked="checked"\'; } ?> /><label>Videos</label>
<input type="submit" id="searchsubmit" value="Search" />
</form>

Bu kodlar arama kutusu ve arama sonuçlarını üreten sorgu kutularını ekler. Bunlara ek olarak, hangi yazı türlerini sorgular içinde arandığını kontrol eder ve checkboxların uygunluğunu denetler. Gizli alanlarda tüm yazı türlerini nasıl eklediğimizi unutma! Bunu ekleyerek in_array fonksiyonunu çalıştırabildik ve checkboxların kontrol edilebilirliğini sağladık. Bunu başka nasıl yapabileceğimiz hakkında kaynak yoktu. Bu işi yapan bulduğumuz en iyi yol buydu.

Önizleme:

\"advancedsearch\"

Yazar Bilgileri

Emrah emrah19may@hotmail.com
1981 Samsun doğumlu ve Gazi Üniversitesi, Bilgisayar ve Öğretim Teknolojileri Eğitimi mezunu. Bilişim Teknolojileri Öğretmeni olarak görev yapmakta olup DMOZ Editörü, Web-Grafik Tasarımı ve SEO eğitmeni.

Yorum Yap