Fonksiyon Tanımı: add_action

Fonksiyon Tanımı: add_action

Bir önceki yazıdaki add_filter fonksiyonuna benzeyen add_action fonksiyonu WordPress tarafından gerçekleştirilen bir eylem anında tetiklenen bir fonksiyona eklemeler yapar. Buna örnek olarak yazınızı yayınladığınız anda işleme giren publish_post() fonksiyonunu gösterebiliriz. Bu fonksiyon siz Yayınla butonuna bastığınızda işleme alınır.

add_action kullanımı;

Codex sayfasında anlatılan kullanım şu şekildedir;

<?php add_action( $hook, $function_to_add, $priority, $accepted_args ); ?>

Kod içindeki tanımlar da şunları açıklar;

  • $hook : Genişletilecek ve ekleme yapılacak fonksiyonun adı.
  • $function_to_add : Ekleme yapacak fonksiyonun adı.
  • $priority : Filtre uygulanırken gözlenecek öncelik -sayısal değerdir- (boş bırakılırsa 10 değeri işlenir)
  • $accepted_args : Kısa Kod (Shortcode) gibi alanlarda ve fonksiyonun kullanabileceği ekstra değerleri tanımlamak için kullanılır

add_action kullanımı için örnek;

Yukarıda bahsettiğim üzere add_action fonksiyonu var olan bir fonksiyona yeni bir eylem, görev ekler. Aşağıda göreceğiniz fonksiyonda ise yazı yayınlama anında belirtilmiş e-posta adreslerine mail göndermek üzere bir fonksiyon yazıp, bunu yeni yazı yayınlama butonuna bastığımıza aktif olması için publish_post fonksiyonunu genişletiyoruz.

Aşağıda vereceğim fonksiyon temanızın functions.php dosyasında kullanılması gerekmektedir. Bu dosya temanızın en önemli dosyası olduğundan lütfen işlem yapmadan önce yedek alınız. Bu dosya yol olarak wp-content/themes/temanızın-adı/ yolunda bulunur.
function arkadaslara_mail_at( $post_ID ) {
   $arkadaslar = 'fatih@example.org, berkay@example.org';
   wp_mail( $arkadaslar, "Serkan yeni bir yazı yazdı", 'Yeni bir yazı yazdım, hani belki ilginizi çeker dedim : http://blog.example.com' );

   return $post_ID;
}
add_action( 'publish_post', 'arkadaslara_mail_at' );

Bu örnekteki kodu temanızın functions.php dosyasyına ekleyebilir, test edebilirsiniz.
Selametle

2 thoughts on “Fonksiyon Tanımı: add_action”

Comments are closed.