WordPress için kod yazan geliştirici arkadaşlara faydası olması amacıyla bu zamana kadar kullandığım WordPress SQL cümlelerini bir araya getirerek yayınlamaya karar verdim. Bazen WordPress’in standart kodları ihtiyacınızı karşılamadığı benim yaptığım gibi veritabanına direk müdahalelere mecbur kalabiliyorsunuz. İşte böyle durumlarda bu SQL cümleleri hayatınızı ve üzerinde çalıştığınız projeyi kurtarabilir ;)
DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'
En güzel cümle ile başlamak istedim. Bildiğiniz gibi hangi yazının kaç kez okunduğunu öğrenmek için tüm dünyada en çok kullanılan eklentilerden birisi Hakan Demiray‘ın Sayfa Sayaç eklentisidir. Bu eklenti ile sitenizde en çok okunan yazıları da gösterebilirsiniz. Son çalıştığım projede benden görüntülenen yazının bulunduğu kategorideki en çok okunanları listelemem istendi. Bende bunun üzerine Hakan’ın eklentisine ufak bir yama yaptım. Yama ile beraber artık ID’sini belirttiğim kategorideki en çok okunanları seçebiliyorum. Bunu buradan yayınlayarak Hakan’a da eklentiyi güncellemesi konusunda bir fikir verebilirsem ne mutlu bana ;)
$tp = $wpdb->prefix;
$SQL = "SELECT *
FROM {$tp}posts, {$tp}posts_okunma, {$tp}term_relationships, {$tp}term_taxonomy
WHERE {$tp}posts.ID = {$tp}term_relationships.object_id
AND {$tp}term_relationships.term_taxonomy_id = {$tp}term_taxonomy.term_taxonomy_id
AND {$tp}term_taxonomy.taxonomy = 'category'
AND {$tp}term_taxonomy.term_id = '{$kat}'
AND {$tp}posts.ID = {$tp}posts_okunma.postID
AND post_status = 'publish'
AND post_type = 'post'
ORDER BY {$tp}posts_okunma.sayac_toplam
DESC LIMIT 0, $limit";
Aşağıdaki kod ile en çok yorumlanan yazıları çekebilirsiniz.
$cokyorumalan = "SELECT $wpdb->posts.ID, post_title, post_name, post_date, COUNT($wpdb->comments.comment_post_ID) AS 'comment_total' FROM $wpdb->posts LEFT JOIN $wpdb->comments ON $wpdb->posts.ID = $wpdb->comments.comment_post_ID WHERE comment_approved = '1' AND post_date_gmt < '".gmdate("Y-m-d H:i:s")."' AND post_status = 'publish' AND post_password = '' GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_total DESC LIMIT $limit";
Belirli bir kategorinin yazılarını çekmek istiyorsanız aşağıdaki sorguyu kullanabilirsiniz. $kat değişkeni ilgili kategorinin ID’sidir.
$tp = $wpdb->prefix;
$yazisorgusu = "SELECT ID, {$tp}term_taxonomy.term_id as category_id, id AS post_id
FROM {$tp}posts, {$tp}term_relationships, {$tp}term_taxonomy
WHERE {$tp}posts.ID = {$tp}term_relationships.object_id
AND {$tp}term_relationships.term_taxonomy_id = {$tp}term_taxonomy.term_taxonomy_id
AND {$tp}term_taxonomy.taxonomy = 'category'
AND {$tp}term_taxonomy.term_id = '".$kat."'
AND post_status = 'publish'
AND post_type = 'post'
ORDER BY id DESC LIMIT 0, $limit";
WordPress’in oldukça faydalı bir yanı da özel alanlarıdır. Bu özel alanlardan sadece birinde aşağıdaki kod ile arama yapabilirsiniz.
$querystr = " SELECT wposts.* FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = 'candy' AND wpostmeta.meta_value = '$candy' AND wposts.post_status = 'publish' AND wposts.post_type = 'post' ORDER BY wposts.post_date DESC ";
Daha önce şurada bahsetmiştim ama konusu gelmişken buraya da yazmanın bir sakıncası olmaz sanırım.
$querystr = " SELECT wposts.* FROM $wpdb->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 ";
Sizin de bildiğiniz güzel cümleler varsa ve iletirseniz bu arşivi genişletebiliriz.
Genç yaşlarda programlama ile tanıştı ve Delphi ile başladığı programlama macerasına şuanda PHP, SQL, Javascript, AJAX, CSS, XHTML teknolojileri ile devam etmektedir. Elektrik - Elektronik bölümü mezunu olan "yakuter" 2006 yılından itibaren yakuter.com'un yazarlığını yapmaya başlamıştır.
Hakan
07 Mart 2009
çok faydalı olmuş, eline sağlık ;) Eklenti için herkes ne diyorsa haklı ama inan uğraşasım gelmiyor :D
yakuter
07 Mart 2009
İyi ya Hakancım bende uğraşmayasın diye yazdım. Hatta bir ara sana direk fonksiyonu da göndereyim ;)
Öneri
07 Mart 2009
Saygısızlık olarak algılamazsanız bir atasözü ile size laf dokunduracağım: “Ele verir talkımı; kendi yutar salkımı”. Benim severek kullandığım Ylink eklentisi nicedir güncellenmiyor. Bence çok kullanışlı bir eklenti. Hata geliştirlirse daha da iyi olacaktır kaanatindeyim.
yakuter
07 Mart 2009
Haklısınız ama bir de şu açıdan bakmak lazım. Biz yoğunluğumuzu hep daha faydalı olacağını düşündüğümüz işlere veriyoruz. ylink fazla kullanılmayınca başka yerlere yöneldik doğal olarak. Yine de size de sonuna kadar hak veriyorum.
oztecnic
18 Mart 2009
İnsanın birikimlerini paylaşması kadar güzel ve samimi birşey olamaz, takdir ediyorum…
Demir
25 Şubat 2010
WordPress SQL Sorguları linkinde wordpress düzenlemesi yaparken işinizi hızlandıracak ve kolaylaştıracak, özellikle veritabanında gereksiz şişkinliğe yol açan verilerin temizlenmesinde oldukça faydalı sql sorguları yer almakta.
Kuyumcu Karagöz
20 Nisan 2010
Bence;En kolay ve En iyi bloglama sitesi WordPress Sizin sayenizde bir çok şeyde öğreniyoruz.Site yapan arkadaşlar size ve sizin gibi Öğretici site sahiplerine kızmasın ha;Size çok teşekkür ederim.
Aydın
26 Ağustos 2010
çok güzel. bize çok faydalı oluyorsunuz. buna benzer kodları eklerseniz çok sevinirim :)
Günay
02 Eylül 2010
Paylaşım güzel hoşta sql'u temaya nasıl yazdırıcaz örnek "Kategoriye Göre En Çok Okunanlar"
hangi dosyaya ve ne şekilde ekliyeceğimizi paylaşırsanız sevinirim.
ismail
11 Mart 2011
merhaba
önceki wp temada resimler yazı içinde <img src="" alt="" width="0" height="0" />koduile yeni temada ise resim özel alanından çagrılıyor resim sayısı oldukça çok tema geçişinde bunu toplu olarak yapabileceğim kısa bir yöntem varmıdır yada hangi yolu izlemeliyim
tşk
iyi çalışmalar
Yakuter web tasarım, yazılım geliştirme, IPhone uygulamaları gibi konular da Üreticy'yi öneriyor.
Masaüstünüzü iPad arayüzü şeklinde kullanabilmeniz ve uygulama merkezi sayesinde sunduğu onlarca uyg...
YouTube ve diğer popüler çevrimiçi video sitelerinden video indirmek istiyorsanız kullanabileceğiniz...
Elder Scrolls V Skyrim için Bethesda Softworks tarafından hazırlanmış duvar kağıtları....
Kaybettiğiniz, yanlışlıkla sildiğiniz veya virüslerden mağdur olduğunuz dosyalarınızı bu programla k...
Star Wars Knights of the Old Republic 2 oyunu için hazırlanmış en güzel duvar kağıtlarını sizin için...
Yazılan yazılardan ilk siz haberdar olun, yeni yazılar e-postanıza gönderilsin.
yakuter.com © 2006-2010 Erhan Yakut. Site tasarım Cenk Akyıldız - (Tema Bilgisi).
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.