WordPress Hooks Nedir?
WordPress Hooks, WordPress’in temel işlevlerine müdahale etmeyi sağlayan mekanizmalardır. İki ana türü vardır: Aksiyonlar ve Filtreler. Aksiyonlar, belirli bir noktada bir kod parçasını çalıştırmanı sağlar, filtreler ise veriyi değiştirmene izin verir. Bu mekanizmalar, WordPress’in esnekliğini ve genişletilebilirliğini artırır.
Aksiyonlar
Aksiyonlar, bir olayın gerçekleştiği noktada kod çalıştırmanı sağlar. Örneğin, bir yazı yayımlandığında, bir kullanıcı giriş yaptığında veya bir tema yüklendiğinde aksiyonlar tetiklenebilir.
Aksiyon Ekleme
Aksiyon eklemek için `add_action()` fonksiyonu kullanılır:
“`php
add_action(‘aksiyon_ismi’, ‘fonksiyon_ismi’, [öncelik], [parametre sayısı]);
“`
– aksiyon_ismi: Hangi aksiyonun tetikleneceği.
– fonksiyon_ismi: Tetiklendiğinde çalışacak fonksiyon.
– öncelik: Aksiyonun çalışma sırası (varsayılan 10).
– parametre sayısı: Fonksiyonun kabul edeceği parametre sayısı (varsayılan 1).
Örnek:
“`php
function custom_admin_notice() {
echo ‘
Merhaba, bu bir özel bildirim!
‘;
}
add_action(‘admin_notices’, ‘custom_admin_notice’);
“`
Bu kod, yönetici paneline giriş yapıldığında bir bildirim gösterecektir.
Filtreler
Filtreler, veriyi değiştirmene izin verir. Örneğin, yazının içeriği, başlığı, yorumlar, e-posta içerikleri gibi çeşitli veriler filtrelenebilir.
Filtre Ekleme
Filtre eklemek için `add_filter()` fonksiyonu kullanılır:
“`php
add_filter(‘filtre_ismi’, ‘fonksiyon_ismi’, [öncelik], [parametre sayısı]);
“`
– filtre_ismi: Hangi filtrenin uygulanacağı.
– fonksiyon_ismi: Uygulanacak fonksiyon.
– öncelik: Filtrenin uygulanma sırası (varsayılan 10).
– parametre sayısı: Fonksiyonun kabul edeceği parametre sayısı (varsayılan 1).
Örnek:
“`php
function modify_content($content) {
return $content . ‘
Bu içeriğe eklenmiş bir paragraf.
‘;
}
add_filter(‘the_content’, ‘modify_content’);
“`
Bu kod, her yazı içeriğinin sonuna bir paragraf ekler.
Hook’ların Önceliği
Her aksiyon ve filtre, belirli bir öncelik ile çalışır. Bu, WordPress’in hangi sırada işlemleri gerçekleştireceğini belirler. Varsayılan öncelik 10’dur, ancak daha erken veya geç işletilmesi gereken işlemler için bu değer değiştirilebilir.
Örnek:
“`php
add_action(‘init’, ‘custom_init_function’, 5);
add_filter(‘the_content’, ‘modify_content’, 20);
“`
İlk örnekte, `custom_init_function` fonksiyonu diğer 10 öncelikli fonksiyonlardan önce çalışır. İkinci örnekte ise, `modify_content` fonksiyonu diğer 10 öncelikli filtrelerden sonra çalışır.
Dinamik Hooks
WordPress, dinamik hook’larla da çalışabilir. Bu, hook isimlerinin dinamik olarak oluşturulmasına izin verir. Örneğin:
“`php
function custom_post_type_init() {
// Özel yazı tipi kayıt işlemleri
}
add_action(‘init’, ‘custom_post_type_init’);
“`
Burada `init` aksiyonu her sayfa yüklendiğinde tetiklenir, ancak özel yazı tipi kaydı sadece belirli bir koşul altında yapılabilir.
Hook’ları Kaldırma
Bazı durumlarda, mevcut bir aksiyon veya filtreyi kaldırmak isteyebilirsin. Bu işlem için `remove_action()` veya `remove_filter()` fonksiyonları kullanılır:
“`php
remove_action(‘aksiyon_ismi’, ‘fonksiyon_ismi’, [öncelik]);
remove_filter(‘filtre_ismi’, ‘fonksiyon_ismi’, [öncelik]);
“`
Hook’lar ve Öncelikler Üzerine Daha Derinlemesine
WordPress, aynı aksiyon veya filtre için birden fazla fonksiyonun eklenmesine izin verir. Bu durumda, öncelikler çok önemli hale gelir. Örneğin, bir eklenti içeriği değiştiriyorsa ve sen bu değişikliği tersine çevirmek istiyorsan, öncelik kullanarak bu işlemi yapabilirsin:
“`php
function undo_plugin_changes($content) {
// Eklentinin yaptığı değişiklikleri tersine çevir
return preg_replace(‘/
(.?)<\/p>/’, ”, $content);
}
add_filter(‘the_content’, ‘undo_plugin_changes’, 999);
“`
Bu kod, `the_content` filtresine 999 öncelik ile eklenmiş bir fonksiyon, böylece diğer filtrelerden sonra çalışır.
Hook’lar ve Performans
Aksiyonlar ve filtreler, performans üzerinde etkili olabilir. Çok fazla aksiyon ve filtre eklemek, sayfa yüklenme süresini artırabilir. Bu nedenle, gereksiz hook’ları kullanmaktan kaçınmak ve performansı optimize etmek için uygun önlemler almak önemlidir.
Son Sözler
WordPress Hooks, temanın veya eklentinin işlevselliğini genişletmek için güçlü bir araçtır. Doğru kullanıldığında, WordPress’in esnekliğinden tam anlamıyla yararlanabilir ve geliştirmeler yapabilirsin. Aksiyonlar ve filtreler, WordPress ekosisteminin vazgeçilmez bir parçasıdır ve her geliştiricinin bilmesi gereken temel bilgiler arasındadır.