WordPress Filter ve Action’lara Genel Bakış 1

Giriş

Öncelikle herkese merhabalar.

Rooteto‘ya yazdığım son yazının üzerinden aylar geçtikten sonra farkettim ki WordPress filter ve action‘larla ilgili Türkçe kaynak neredeyse hiç yok. WordPress öğrenmek için İngilizce’nin şart olmamasını ve yazılım alanında Türkçe kaynak sayısının artmasını isteyen biri olarak “filter ve action nedir, nerede kullanılır, ne işe yarar” temalı bu makaleyi yazmaya karar vermiş bulunmaktayım. Hadi bakalım.

Nedir bunlar?

Filter (filtre olarak çevrilebilir), WordPress’in çekirdek fonksiyonlarında bolca bulunan, böylelikle tema ve eklenti geliştiricilerine çekirdek dosyalarını değiştirmeye gerek bırakmadan ilgili değişkeni/fonksiyonun döndüreceği değeri manipule etmeye olanak tanır.

Action’lar (aksiyon) da filter’lar gibi WordPress çekirdek fonksiyonlarında bolca bulunur. Filter’lardan farkı, döndürülecek sonucu manipule etmek yerine, fonksiyon çalışırken içerisinde tema ve eklenti geliştiricilerinin kendi fonksiyonlarını çalıştırabilmelerini sağlamasıdır.

Çok karışık mı oldu? Ne işe yaradıklarını öğrendiğinizde tanıma gerek kalmayacaktır. 🙂

Nasıl Kullanılır?

Filter:

WordPress’te birçok fonksiyonda filter uygulanır. Bize düşen ise, manipule edeceğimiz değişkende kullanılan filter etiketini öğrenmek ve temamızda/eklentimizde kullanmak. Filtreleme yapan fonksiyonun kullanımı ve parametreleri şu şekilde:

add_filter( $etiket, $uygulanacak_fonksiyon, $oncelik, $parametre_sayisi );
  1. $etiket (string): filter’ın etiketi. Zorunludur.
  2. $uygulanacak_fonksiyon (string): filtrelemeyi yapacak fonksiyonun adı. Zorunludur.
  3. $oncelik (integer): 1-10 arası öncelik sayısı. Aynı etiketi kullanan filtrelerden, öncelik parametresi daha düşük olan daha önce çalıştırılır. Opsiyonel bir parametredir.
  4. $parametre_sayisi (integer): Filtre fonksiyonunun kabul edeceği parametre sayısı. Opsiyoneldir

Örnek Kullanım:

the_content etiketli filter’ı kullanarak örnek verelim.

add_filter( 'the_content', 'yazi_sonuna_hoscakal_ekle' );
function yazi_sonuna_hoscakal_ekle( $content ) {
    $hoscakal = "<p>Bir sonraki yazıda görüşmek üzere, hoşçakalın.</p>";

    // içeriğin sonuna hoşçakal cümlesini ekle.
    $content .= $hoscakal;

    // filtrelenmiş içeriği döndür.
    return $content;
}

Java kullanıcılarının “tıpkı @Override gibiymiş” dediğini duyar gibiyim.

Yukarıdaki kodu temanızın functions.php dosyasına eklediğinizde, tüm yazılarınızın sonunda $hoscakal cümlesinin yazdırıldığını göreceksiniz.

Action:

Action’lar belli olaylar sırasında tetiklenerek, temanızda, eklentinizde belirlediğiniz fonksiyonların çalıştırılmasını sağlar. jQuery kullanıyorsanız $(element).on("click", function() { // elemente tıklandı }) kullanımıyla bağlantı kurabilirsiniz.

Kullanım şekli ve parametreleri:

add_action( $etiket, $uygulanacak_fonksiyon, $oncelik, $parametre_sayisi );
  1. $etiket (string): action (hook)’ın etiketi. Zorunludur.
  2. $uygulanacak_fonksiyon (string): action’ı gerçekleştirecek fonksiyonun adı. Zorunludur.
  3. $oncelik (integer): 1-10 arası öncelik sayısı. Aynı etiketi kullanan action’lardan, öncelik parametresi daha düşük olan daha önce çalıştırılır. Opsiyonel bir parametredir.
  4. $parametre_sayisi (integer): action fonksiyonunun kabul edeceği parametre sayısı. Opsiyoneldir

Örnek Kullanım

Örneğin siteye yeni bir kayıt yapıldığında, wp_insert_user() fonksiyonu yeni üye bilgilerini veritabanına ekledikten hemen sonra “user_register” etiketli bir action uygular. Bu action’ı kullanarak yeni üyeye “hoşgeldin” temalı bir e-posta gönderelim:

add_action( 'user_register', 'hosgeldin_maili_gonder' );
function hosgeldin_maili_gonder( $user_id ) {
    // kaydolan kullanıcının ID'sini kullanarak e-posta adresini al.
    $alici = get_userdata( $user_id )->user_email;

    $konu = "Sitemize Hoşgeldiniz";

    $mesaj = "Sitemize kaydolduğunuz için teşekkür ederiz :)";

    // mail'i gönder.
    wp_mail( $alici, $konu, $mesaj );
}

Bu kodu temanızın functions.php dosyasına eklediğinizde, sitenize kaydolan kişiye ilgili mesaj gönderilecektir.

Nasıl çalışırlar?

Filter:

WordPress çekirdek fonksiyonlarında apply_filters() fonksiyonuyla değişkenlerin filtrelenmesine imkan verilir. İlgili etiketli filter’a add_filter() fonksiyonunu kullanarak müdahale ettiğimizde, çekirdek fonksiyondaki apply_filters fonksiyonu manipulasyonu gerçekleştirir.

Hepimiz, yazı içeriğinin bir WordPress çekirdek fonksiyonu olan the_content() fonksiyonuyla yazdırıldığını biliyoruz. WordPress kaynak kodlarında bu fonksiyona baktığımızda şöyle bir şeyle karşılaşırız:

function the_content( $more_link_text = null, $strip_teaser = false) {
	$content = get_the_content( $more_link_text, $strip_teaser );

	/**
	 * Filter the post content.
	 *
	 * @since 0.71
	 *
	 * @param string $content Content of the current post.
	 */
	$content = apply_filters( 'the_content', $content );
        ...
	echo $content;
}

$content = apply_filters( 'the_content', $content ); kodunun bulunduğu satır, tam olarak filtrenin uygulandığı satır. Böylelikle ‘the_content’ etiketine uyguladığımız her filter, $content değişkenini, haliyle de the_content() fonksiyonunun çıktısını değiştirecektir.

Action:

WordPress’te birçok önemli olayı gerçekleştiren fonksiyonda do_action() fonksiyonunun çalıştırıldığını görebilirsiniz. Örneğin WordPress’in üye kaydını veritabanına eklemek için kullandığı wp_insert_user() fonksiyonu, tüm işlemler bittikten sonra “user_register” etiketli bir action çalıştırır:

function wp_insert_user( $userdata ) {
    global $wbdb;
    // --kullanıcı bilgileri kontrolü ve veritabanına ekleme--

    /**
    * Fires immediately after a new user is registered.
    *
    * @since 1.5.0
    *
    * @param int $user_id User ID.
    */
    do_action( 'user_register', $user_id );
}

Yukarıdaki WordPress çekirdek fonksiyonundan da anlaşıldığı üzere “user_register” etiketli action’a add_action() fonksiyonuyla referans verdiğiniz her fonksiyon, wp_insert_user() fonksiyonu çalışırken do_action( 'user_register', $user_id ) satırında çağrılacaktır. Böylelikle yeni kayıt sonrası (Nasıl Kullanılır? bölümündeki örnekteki gibi) yeni kullanıcıya e-posta gönderebilecek, yeni kullanıcının user meta’sını güncelleyebileceksiniz.

Kendi Filter ve Action’ınızı Tanımlama

Bir tema ya da eklenti yazıyorsanız, yazılımınızı kullanacak kişilerin kodlarınızı değiştirmek yerine fonksiyonlarınızı manipule etmesini isteyebilirsiniz. Action ve filter’ları tema/eklentinizde kullanmak diğer geliştiricilere temanızı/eklentinizi mükemmelleştirecek eklentiler yazabilmesine de olanak tanır. Bu şekilde temanız/eklentiniz çok daha “geliştirici dostu” olacaktır.

Örneğin yeni kaydolan kullancııya e-posta gönderen bir eklenti hazırladınız ve WordPress Eklenti’lerine eklediniz. Yeni kullanıcıya gönderilecek e-posta’nın başlık ve içeriğine filter ekleyebilir, e-posta gönderildikten önce ve sonrasına action uygulayabilirsiniz.

add_action( 'user_register', 'hosgeldin_maili_gonder' );
function hosgeldin_maili_gonder( $user_id ) {
    // kaydolan kullanıcının ID'sini kullanarak e-posta adresini al.
    $alici = get_userdata( $user_id )->user_email;

    $konu = "Sitemize Hoşgeldiniz"; // varsayılan e-posta başlığı.
    $konu = apply_filters( 'eklentim_mail_basligi', $konu );

    $mesaj = "Sitemize kaydolduğunuz için teşekkür ederiz :)"; // varsayılan mesaj.
    $mesaj = apply_filters( 'eklentim_mail_mesaji', $mesaj );

    do_action( 'eklentim_mail_gondermeden_once' );

    // mail'i gönder.
    wp_mail( $alici, $konu, $mesaj );

    do_action( 'eklentim_mail_gonderdikten_sonra' );
}

Bu sayede geliştiriciler fonksiyon içeriğini değiştirmeye gerek duymadan mail başlık ve içeriğini filtreleyebilir, mail gönderilmeden önce ve sonrasında diledikleri işlemi yapabilirler.

Not: Yukarıdaki eklentiyi yazmayı ve bu şekilde filtrelemek pek de mantıklı olmaz. Ancak adı üstünde bu bir örnek.

Meraklısına:

  • add_action() fonksiyonu add_filter() fonksiyonunu döndürür. Ancak add_action() yerine add_filter() kullanılmamalıdır.
  • Custom Post Type oluştururken WordPress’in ‘init‘ isimli action’ı kullanılır.

Kapanış

Tema/eklenti yazarken filter ve action’ları kullanarak kolayca WordPress fonksiyonlarını manipule edebilir, bu manipulasyona gerek duymadığımızda kolayca kaldırabiliriz. Ayrıca tema/eklentimizin kolayca manipule edilebilir olması da esneklik ve “kolay düzenlenebilirlik” açısından oldukça işimize yarar.

1 Comment

Bir yanıt yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Yandex Browser Fenerbahçe Temalı İnternet Tarayıcısı 0

Yandex sponsorluğunda Fenerbahçe temalı yeni internet tarayıcısı Yandex Browser indirilmeye sunuldu.

Yandex Browser FB temalı internet tarayıcısı Fenerbahçeye gönül vermiş taraftarların internet tarayıcısıdır. Türkiyede ilk kez bir Futbol klubü için Yandex tarafından yapılan internet tarayıcısı oldu. Yandex Browser ile aşığı olduğunuz Fenerbahçe klubünün teması ile artık internette rahatça gezebilirsiniz.

fenerbahce yandex tarayici

Yandex Browser ile düşük hızlardaki turbo modu ve yüksek bağlantı hızlarında gösterdiği performans ile diğer internet tarayıcılarına taş çıkartıyor. Yandex ve Fenerbahçe işbirliği ile ortaya çıkan browser arayüzünde Fenerbahçe ile ilgili tüm haberlere ulaşabileceksiniz. Diğer web tarayıcılardan bir farkı olmayan Yandex browser ile kullanabileceğiniz diğer özellikler ise şöyle:

  • Fenerbahçe teması
  • Özelleştirilebilir arayüzü
  • Eklenti desteği
  • Turbo modu
  • Farklı arama motoru seçenekleri
  • Tüm ayarları senkronize etme
  • Favori link ekleme
  • Çok az ram kullanımı
  • İngilizce ve türkçe dil desteği

fenerbahce yandex browser

Chromium tabanlı olarak karşımıza çıkan Fenerbahçe Temalı Yandex Browser hızı, kullanım kolaylığı ve Fenerbahçe haberleri ile çok rahat edeceksiniz. Tamamen ücretsiz olarak indirebileceğiniz internet tarayıcısını hemen alttaki bağlantıdan indirin.

Yandex Browser Fenerbahçe Temalı İnternet Tarayıcısı

Tooltapp Uygulaması ile Android Dünyasındaki Herşeyi Öğrenin 2

Tooltapp Uygulaması ile Android Dünyasındaki Herşeyi Öğrenin

Tooltapp Android uygulaması akıllı telefon ve tabletlerde güncel haberleri, yeni çıkan oyunları ve uygulamaları, teknoloji haberlerini ve akıllı cihaz incelemelerini anında haber veren modern bir uygulamadır.

Tooltapp indir 2

Tooltapp android uygulamasını indirerek akıllı telefon ve tabletinizi bir oyun ve uygulama indirme merkezi yapar. Tooltapp uygulaması aynı zamanda internetteki en iyi içerikleri akıllı telefonunuz dan okumanıza olanak sağlar. Örnek olarak : akıllı telefon incelemeleri, en iyi oyunlar ve uygulamalar ve nasıl yapılır gibi kaliteli içerikleri size sunar. Tooltapp android uygulaması akıllı telefon ve tabletiniz için duvar kağıtları, temalar ve güncellemeleri sunarak en güncel versiyonları kullanmanızı sağlar.

Tooltapp indir 4

Tooltapp Android için herşeyiniz olacak uygulama ile telefonunuzun tüm özelliklerini karşınıza çıkartarak telefonunuz hakkındaki bilgileri öğrenebilirsiniz. Aslında Tooltapp android uygulaması bir RSS aracı gibi çalışır ancak Tooltapp android uygulamasının farkı kaliteli içerikleri ve akıllı telefonunuzu değiştirecek içerikleri karşınıza çıkartarak telefonunuzu maximum şekilde kullanmanızı sağlar. Akıllı telefonunuz hakkında bilmediklerinizi karşınıza çıkartarak daha verimli kullanmanızı sağlar.

Tooltapp indir 5

Tooltapp android uygulamasının diğer özellikleri ise : Yeni içerikleri anında bildirimler ile haberdar eder. İnternetteki en iyi içerikleri çıkartan Tooltapp uygulaması ile içeriği hem beğenme ve hem de arkadaşlarınızla Facebook, Twitter üzerinden paylaşmanızı sağlar. Tooltapp genelde yönlendirme yapan içerikleri güvenilir kaynaklardan seçer. Böylelikle saçma sapan sitelere sizi yönlendirmez.

Tooltapp Neler Sunar Sunar?

  • Android popüler uygulamalar ve oyunlar
  • Android için duvar kağıtları
  • İlginize göre içerikler
  • İçerikleri sosyal medyada paylaşma
  • Nasıl yapılır? içerikleri
  • Uygulama ve sistem güncellemeleri
  • Android widget ve araçlar

Tooltapp indir 6

Tooltapp Sosyal Medya Hesapları

Tooltapp sosyal medya hesapları üzerinden uygulama hakkında güncellemeler ve geri bildirim yapabilirsiniz.

Tooltapp Facebook

Tooltapp Twitter

Tooltapp Uygulaması İndir

Tüm akıllı telefon ve tabletlerle uyumlu çalışan Tooltapp uygulaması hakkında daha detaylı özelliklerine ve Tooltapp uygulamasını indirmek için alttaki mavi butonu kullanabilirsiniz. Yada Google Play mağazasında da indirebilirsiniz.

Tooltapp Android Için Mobil Rehber Uygulaması

Most Popular Topics

Editor Picks