07 Eylül 2008

WP'nin add_action() Fonksiyonu

WordPress Yorum Ekle

WP için eklenti yazanların en çok ihtiyaç duydukları fonksiyonlardan biri add_action() fonksiyonudur. WordPress o kadar güzel bir mantıkla programlanmış ki, bu fonksiyon ile bazı işlemlerden (bunlara hook - kanca diyoruz) sonra istediğiniz bir fonksiyonun çalıştırılmasını sağlayabiliyorsunuz. Diyelim ki bütün yazıların sonunda standart bir yazı göstermek istiyorsanız, WP'nin 'the_content' kancası için add_action() ile yazı sonuna yazı ekleme işini yapan fonksiyonu ekliyorsunuz. Artık WP her yazıyı gösterdiğinde sizin belirttiğiniz fonksiyonu çalıştırıyor. Elbetteki yapabilecekleriniz bunlarla sınırlı değil, neredeyse yüze yakın kanca bulunuyor. Kancaların listesine buradan(İngilizce) ulaşabilirsiniz.
Gelelim add_action() fonksiyonunu açıklamaya.

Kullanımı

add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1);
şeklinde. Verilen parametreleri şu şekilde açıklayabiliriz.
$tag: Fonksiyonunuzu eklemek istediğiniz kancanın ismi.
$function_to_add: Kanca işleme alındığında çalıştırılmasını istediğiniz kendi fonksiyonunuzun adı.
$priority: Fonksiyonunuzun önceliği, önemi. Varsayılan olarak 10 olup, 5 olarak ayarlanan fonksiyon daha önce çalıştırılır, 12 olarak ayarlanan ise daha sonra çalıştırılır.
$accepted_args: Fonksiyonunuzun kaç tane parametre aldığı. Burası önemli. Kancaları işleten fonksiyon do_action() isimli bir fonksiyon. Bazı kancalar sizin fonksiyonunuza parametre gönderebiliyorlar. Bazıları sadece bir tane gönderirken, bazıları daha fazla gönderebiliyor. Bu nedenle kancaların kaç tane parametreyi, fonksiyonunuza gönderdiğini tespit edip, fonksiyonunuzu ona göre ayarlamanız iyi olacaktır.

Örnek Kullanımlar

Yeni bir yazı yazıldığında bazı vatandaşlara e-posta atalım

  1. function eposta_gonder($post_ID)  {
  2.    $arkadaslar = 'mahmutarmut@zamazingo.com, senkimsin@hadiordan.com';
  3.    mail($arkadaslar, "Yeni yazdım" , 'Günlüğüme yine süper ötesi bir yazı ekledim:  http://www.yakupgovler.com');
  4.    return $post_ID;
  5. }
  6.  
  7. add_action('publish_post', 'eposta_gonder');

Tekil yazılar görüntülendiğinde, yazı sonlarına Copyright yazdıralım

  1. function cright_ekle($content)  {
  2.    if is_single() {
  3.      $content .= "<p>&copy; Yakup GÖVLER. Bütün hakları saklıdır.</p>"
  4.    }
  5.      return $content;
  6. }
  7.  
  8. add_action('the_content', 'cright_ekle');

Websitesinin arasına birşeyler yazdıralım

  1. function jquery_ekle()  {
  2.   echo "<script type='text/javascript' src='".get_bloginfo('home')."wp-includes/js/jquery/jquery.js?ver=1.2.3'></script>";
  3. //WP'yle birlikte gelen jquery'i sitemize dahil etmiş olduk.
  4. }
  5.  
  6. add_action('wp_head', 'jquery_ekle');

Eklentimiz için yönetim panelinde bir menü seçeneği ve seçenekler sayfası oluşturalım

function secenek_sayfasini_olustur() {
echo "

\n";
echo "

Eklentimin Seçenekleri

\n";
echo "Seçenekler sayfasının diğer şeyleri";
echo "WP için Eklenti Yazalım' başlıklı yazımı okuyabilirsiniz. Ayrıca bileşen yazmak isterseniz de 'WP için Bileşen (Widget) Yazalım' başlıklı yazımı inceleyebilirsiniz.


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

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


“WP’nin add_action() Fonksiyonu” yazısı için 7 Yorum

Bu yazıya yapılan yorumları dilerseniz, ( RSS 2.0 ) beslemesini kullanarak takibe alabilirsiniz.

  1. eylultoprak dedi ki:

    Bu tür yazılarının devamını diliyorum.

    Güzel anlatım olmuş.. Pardon siz hocamısınız =)

  2. Yakup Gövler dedi ki:

    Kesinlikle 🙂

  3. WordPress Action Hooks · Yakup Gövler'in Not Defteri dedi ki:

    [...] Kancalar yönlendirildikleri fonksiyonlara aynı zamanda paremetreler de aktarabilmektedirler (Bkz. add_action fonksiyonu). Yazı içerisinde bunlar 'Fonksiyon parametreleri' olarak verilecektir. Olayların hangi [...]

  4. WordPress’te Özel Yazım Paneli Yaratmak · Yakup Gövler'in Not Defteri dedi ki:

    [...] add_action fonksiyonu ile yönetim menüsü oluşturulurken 'paneli_yarat' fonksiyonunu çağırıyoruz. 'paneli_yarat' fonksiyonunda ise add_meta_box() fonksiyonu ile WP'ye "Kaynakça ve Önizleme" başlıklı bir paneli hem 'Yazı' hem de 'Sayfa' yazma ekranında oluşturacağımızı, bu panel içeriğinin ise 'panel_ekle' fonksiyonu ile oluşturulacağını söylüyoruz. Kodu Al PHP: [...]

  5. apply_filters ve add_filter · Yakup Gövler'in Not Defteri dedi ki:

    [...] add_action fonksiyonu ve action hooks'lar hakkında yazılar yazmıştım. Bunları kullanarak WP'de olaylara müdahale edebiliyorduk. Bu yazımda ise add_filter ve apply_filters fonksiyonları ile WP'nin değişkenlerine, çıktılarına nasıl müdahale edebileceğimizi anlatacağım. Böylece WP'nin çekirdek dosyalarında oynama yapmadan, WP'nin işleyişine müdahale edebiliriz. [...]

  6. nurettin dedi ki:

    Gercekten güzel fonksiyonmuş. emeğine saglık

  7. WordPress Kancanızı Kendiniz Oluşturun · Yakup Gövler - WordPress'e dair ne varsa dedi ki:

    [...] içerisinde geçen add_action fonksiyonu istediğiniz kancaya, kendi fonksiyonunuzu takmaya yarıyor. Artık [...]