25 Nisan 2009

Kendi Filtremizi Oluşturuyoruz

WordPress Yorum Ekle

Bir eklenti yazıyorsunuz ve eklentiniz o kadar gelişmiş ki, diğer eklenti yazarlarına ya da site sahibine eklentinizin kodlarıyla oynamadan, eklentinize müdahale etmelerine izin vermek istiyorsunuz. Bu durumda sizin de WP'nin yaptığı gibi filtreler oluşturmanız gerekiyor. Ama önce apply_filters ve add_filter adlı yazımı incelemenizi tavsiye ederim.
Diyelim ki eklentinizle yazı içeriklerinin sonuna 'Merhaba Televole' yazdırıyorsunuz ve isteyenlerin bu mesajı değiştirebilmesine de izin vermek istiyorsunuz. Eklentinizin bu işi yapan kısmının kodlarını aşağıdaki gibi yaparsanız bu amacınıza ulaşırsınız. Aslında tek yaptığımız $mesaj değişkenimize, kullanıcıların değiştirmesine izin verecek şekilde apply_filters uygulamak.

  1. function icerik_ekle($content) {
  2.  $mesaj = 'Merhaba Televole';
  3.  $eklenecek_yazi = apply_filters('icerigi_degistirmek_istiyorum', $mesaj);
  4.  if (is_single()) {
  5.    return $content. '<p>'.$eklenecek_yazi.'</p>';
  6.  }else{
  7.    return $content;
  8.  }
  9. }
  10.  
  11. add_filter('the_content', icerik_ekle, 999);

Yukarıdaki koddaki add_filter satırı ile 'the_content' filtresinin çağırıldığı yere icerik_ekle fonksiyonumuzu ekledik. Fonksiyonumuz içerisinde ise $mesaj değişkenine ekleyeceğimiz mesajımızı atadık. Ardından da $eklenecek_yazi değişkenine 'icerigi_degistirmek_istiyorum' isimli bir filtreden geri dönecek olan değeri aktardır. Filtreyi kullanacak olan fonksiyona ise $mesaj değişkenimizi parametre olarak gönderdik ve son olarak da bu değişkeni eğer tekil yazıdaysak içeriğin sonuna paragraf olarak ekledik.

Filtre Nasıl Kullanılacak?

Diğer eklenti yazarları ya da site sahibi bizim filtremizi nasıl değiştirecek. Elbetteki add_filter fonksiyonunu kullanarak. Aşağıdaki gibi bir kodla mesajı istedikleri gibi değiştirebilirler.

  1. function mesaj_degistir($mesaj) {
  2.  return "Hadi Len";
  3. }
  4. add_filter('icerigi_degistirmek_istiyorum', 'mesaj_degistir');

Buradaki kodları denemek için eklenti yazmanıza gerek yok, kodları temanızın functions.php dosyasına ekleyerek deneyebilirsiniz. Önce ilk kodu ekleyin ve yazılarınızı kontrol edin. Yazıların sonuna "Merhaba Televole" eklendiğini görün, ardından da kodun devamına sonraki kodu ekleyin. Yazılarınıza tekrar baktığınızda "Hadi Len" yazdığını göreceksiniz.


Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=786.

Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.