Temel kurulum işlerini hallettikten sonra yapacağımız en önemli iş eklentimizin hangi durumlarda çalışmasını istediğimizi WordPress’e bildirmek. Bunun için hazırdaki aksiyonlara hook yani kanca atmamız gerekiyor. 

WordPress çeşitli işler yaparken bu işleri tüm eklentiler için duyurur. Biz de istediklerimizi yakalayıp (kancalayıp) arasına kendi kodumuzu koymuş gibi davranmasını sağlarız. Bunun için wordpress bize add_action() diye bir fonksiyon sunuyor. Bu fonksiyona önce hangi aksiyonu kancalayacağımızı sonra da eklentideki hangi fonksiyonu çalıştıracağını söylüyoruz. Diyelim ki biz bir yazı yayımlanırken bazı işler yapmak istiyoruz. Bu durumda iki tane aksiyona kodumuzu bağlıyoruz:

function supereklenti_yayimlama($postID, $post) {
    //Yazıyla ilgili işlemler yapılır
}
//Yazı kullanıcı tarafından yayımlanırken
add_action('publish_post', 'supereklenti_yayimlama', 10, 2);

function supereklenti_gelecek_yayimlama($postID) {
    $post = get_post($postID);
    //Yazıyla ilgili işlemler yapılır
}
//Yazı otomatik olarak belirli bir tarihte yayımlanırken
add_action('publish_future_post', 'supereklenti_gelecek_yayimlama');

Peki hangi aksiyonlar var derseniz hepsini buraya yazmanın imkanı yok, ama daha önceki yazılarımdan birinde paylaştığım üzere wordpress’in kendi API destek sayfasında hepsi mevcut ve isimleri de oldukça mantıklı. Fakat bir wordpress eklentisi geliştirirken mutlaka post objesine hakim olmak lazım, o yüzden yukarıda $post ile gelen bilgilere bir göz atalım:

DEĞİŞKEN DEĞİŞKEN TÜRÜ BİLGİ
ID int Post’un belirleyici numarası
post_author string Yazarın belirleyici numarası
post_name string Post’un başlığının slug hali
post_type string Post’un tipi
post_title string Post’un başlığı
post_date string Format: 0000-00-00 00:00:00
post_date_gmt string Format: 0000-00-00 00:00:00
post_content string Post’un tüm içeriği
post_excerpt string Yazarın belirlediği özet
post_status string Post durumu
comment_status string {open, closed} döndürür (izin)
ping_status string {open, closed} döndürür (izin)
post_password string Yoksa boş döner
post_parent int Bağlı olduğu bir yazı varsa onun ID’si
post_modified string Format: 0000-00-00 00:00:00
post_modified_gmt string Format: 0000-00-00 00:00:00
comment_count string Kaç tane yorum olduğu bilgisi
menu_order string

Barış Altop
Barış Altop
Matematik tutkusunu yazılım sanatına dönüştürmeyi hedef seçmiş, bilgisayar mühendisliği doktora öğrencisi. Biraz Apple tutkunu, ama teknoloji düşkünü yazılımcı.