WordPress sorgu cümlesine müdahale etme imkanı veren posts_where kancasıyla (hook) ilgili bilgi ararken kancanın kullanımıyla ilgili güzel bir örneğe rastladım. Örnek, bir yazının beslemelerde daha geç yayımlanmasını sağlıyor. Yani diyelim ki siz yazıyı yayımladınız, besleme aboneleriniz yazıdan 5 dakika sonra haberdar olacaklar. Bu ne işimize yarayacak derseniz, yazıyı yayımladıktan sonra bazen hata yaptığımızı anlarız ya da yazıyı yayımlamaktan vazgeçebiliriz. Bu durumda RSS aboneleriniz bundan haberdar olmayacaklar.
WordPress, yazıları elde ederken ya da beslemeler için yazı oluştururken özel bir sorgu oluşturur. Bu sorgunun WHERE kısmı $where değişkeninde saklanır. Bu değişkene istediğiniz gibi müdahale edebilirsiniz. Bizim yapacağımızda, eğer sorgu beslemeler için (is_feed) oluşturulmuşsa WHERE cümlesine timestampdiff() MYSQL fonksiyonu ile müdahale edeceğiz.
Aşağıdaki örnek yazılarınızı beslemelerinize 5 dakika sonra yayımlayacak:
- /**
- * içerik beslemelerde sonradan yayımlanacak
- * $where değişkeni wp-includes/query.php dosyasında tanımlıdır
- */
- function publish_later_on_feed($where) {
- global $wpdb;
- if ( is_feed() ) {
- $now = gmdate('Y-m-d H:i:s');
- $wait = '5'; // integer 5 dakika bekle
- $device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
- $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
- }
- return $where;
- }
- add_filter('posts_where', 'publish_later_on_feed');
Bu kodları temanızın Tema Fonksiyonları (functions.php) dosyasına eklerseniz, yazılarınız beslemelerinizde 5 dakika sonra yayımlanacak. Elbetteki bunu değiştirebilirsiniz. $wait değişkeni süreyi, $device değişkeni ise dakika, saat, gün, hafta... olarak değiştirerek istediğiniz gecikmeyi sağlayabilirsiniz.
Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=705.
Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.
Tarih: 03 Mart 2009 Saat: 01:05
Burada ki zaman RSS servis sağlayıcısının güncelleştirilme aralağına göre değişebiliyor mu ? Yoksa burada ki zaman direk rss servisini etkiliyor mu ?
Tarih: 03 Mart 2009 Saat: 01:10
Burada sadece bir hile yapılıyor, o da şu; RSS okuyucuya gönderilecek yazılar sorgulanırken 5 dakika önceki yazılar seçiliyor. RSS servis sağlayıcısıyla ilgili bir durum yok, sitenin yazıları göstermesiyle ilgili bir durum.
Tarih: 04 Mart 2009 Saat: 02:33
eklenti konu başlığını ilk gördüğümde aklıma şu geldi yaşasın rss den bot ile verilerimizi araklayanlara bi nebzede olsa engel olabileceğiz, geç haberdar olursa botlar google indexlemiş olur konumuzu ve dolayısı ile orjinal yazı sahibi olan site spam filtresine takılmamış olur.
Tarih: 14 Mart 2009 Saat: 20:22
Beslemelerde Yazýyý Geç Yayýmlayalým...
RSS beslemesini kullanarak yaz......
Tarih: 04 Haziran 2009 Saat: 17:52
Makale için Teşekkürler..Faydalı Bilgiler var Sağolasınız