Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

WordPress Özel Alanlarında Arama

49 sec read

Bildiğimiz gibi WordPress’in özel alanları (custom field) gerçekten de çok faydalıdır. Ne kadar faydalı olduğuna ve nasıl kullanıldığına Her Yazım Resimli Olsun Diyorsanız! başlıklı yazımda değinmiştim. Bu konuyu biraz daha devam ettirmek gerekirse özel alan kullanımının yaygınlaşması sonucu buralardaki verileri arama ihtiyacı doğdu.

Çözümler

Bu ihtiyacı temel anlamda gideren eklenti burada tanıtılan Search Custom Field eklentisi. Fakat bu eklentinin çok büyük bir eksisi var ki o da sadece tek bir özel alanı arayabilmesi. Örneğin arabalarla ilgili bir yazınız var ve aynı anda hem marka hem de model isimli iki özel alanınız var. Bu eklenti ile ikisini birden arayamıyorsunuz. Fakat bunun dışındaki tek alan aramak için gayet kullanışlı bir eklenti.

Gelelim daha geniş kapsamlı birden fazla alanın aranmasına. İşte burada artık ileri seviye programlama işin içine giriyor desem yanılmam sanırım. WordPress.org forumlarında bu konu çok tartışılmış çünkü yapılması öyle kolay bir olay değil. Herhangi bir WordPress fonksiyonu bu konuda işinize yaramadığı için kendi veritabanı sorgunuzu yapmanız lazım. Araştırmalarım ve tecrübelerim sonucunda şu SQL cümlersinin sorunsuz bir şekilde çalıştığını gördüm.
[php]posts wposts,
$wpdb->postmeta wpostmeta,
$wpdb->postmeta wpostmeta2
WHERE wposts.ID = wpostmeta.post_id
AND wposts.ID = wpostmeta2.post_id
AND wpostmeta.meta_key = ‘candy’
AND wpostmeta.meta_value = ‘$candy’
AND wpostmeta2.meta_key = ‘mood’
AND wpostmeta2.meta_value = ‘$mood’
AND wposts.post_status = ‘publish’
AND wposts.post_type = ‘post’
ORDER BY wposts.post_date DESC
“;
?>[/php]
Kaynak: http://wordpress.org/support/topic/158228

Sonuç olarak bu konunun ileri seviye programlama bilgisi gerektirdiğini itiraf etmeliyim. Umarım ihtiyacı olanlar bir şekilde programlama bilgisi iyi olan arkadaşlarından (ben değil:) ) destek alarak sorunlarını çözebilirler. Şimdiden kolay gelsin…

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer