WordPress Hooks (aksiyonlar ve filtreler) nasıl kullanılır?

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.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR