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 |