Bugünkü yazımızda WordPress Plugin API’i ele alacağız, bana kalırsa WordPress’in esnek bir ortam sağlamasında ki en önemli gücü buradan almaktadır.
Hook, Actions, Filters
Hook: WordPress’in omurgasını oluşturan yapıdır. Sadece eklentiler için değil, WordPress kendi içinde de bu yapıyı kullanmaktadır. Geliştiriciler açısından en önemli faydası WordPress çekirdeğine müdahale etmeden WordPress’in işleyişine müdahale edebiliyoruz. Bu sayede çekirdek güncellemelerinde vs… yaptığımız değişiklikler kaybolmuyor.
Actions: Adından da anlayacağınıza üzere, bunu WordPress’in çalışmasına göre tetiklenen mekanizmalar olarak düşünebiliriz. Örneğin yeni bir yazı yayınlandığında şu fonksiyonu çalıştır… gibi olay tabanlı yerlerde kullanırız. Actions’u daha iyi anlamak için add_action() ve do_action() fonksiyonlarını incelemelisiniz.
Filters: İşleyiş olarak actions’dan farklıdır, sadece çıktılanan veriyi manipüle etmek için kullanılır. Örnek olarak blogunuzda ki başlıkları düşünün, pek çok seo eklentisi başlıkta ki çıktılanan veriyi düzenleyerek arama motorları açısından daha başarılı hale getirmeye çalışır. Filters’ı daha iyi anlamak için add_filter() ve apply_filters() fonksiyonlarını incelemelisiniz.
Bazı durumlarda action hook’u ile yapabileceğiniz bir işi filter ile’de yapabilirsiniz, yada filter ile yapabileceğiniz bir işi action ilede yapabilirsiniz.
Tek tek ne zaman çalıştıklarını yazamayacakta olsam en çok kullanılan action ve filter hooklarını listelemekte fayda var.
Sık Kullanılan Action Hookları: plugins_loaded , init , admin_menu , template_redirect, wp_head
Sık Kullanılan Filter Hookları: the_content, the_title, comment_text, template_include,
WordPress çekirdeğinde gelen tüm hooklar hakkında bilgi edinmek için Adam Brown’un hook database‘i kullanabilirsiniz. Şahsen faydasını gördüğüm için tavsiye ederim.
Yazı biraz karışık gelebilir, orjinal dökümanı okuduğunuzda http://codex.wordpress.org/Plugin_API umarım daha anlaşılır olacaktır.
[…] onceki yazilarimizda bahsettigimiz gibi WordPress Plugin API sistemini kullanır ve disaridan bakildiginda API sistemine erisimin en […]