WordPress kullanıyorsun ama bazen tema veya eklentilerin sana sunduklarıyla yetinmek zorunda kalıyorsun. Menüde küçük bir değişiklik yapmak istiyorsun, ya da bir form gönderildiğinde otomatik e-posta bildirimi eklemek… Ancak çekirdek dosyaları değiştirmek risklidir ve bu değişiklikler güncellemeler sırasında silinir.
İşte tam burada WordPress Hook devreye giriyor. Kodun gizli kapılarını açan bu mekanizma sayesinde, çekirdek dosyalara dokunmadan, siteni tam istediğin gibi özelleştirebilirsin.
WordPress Hook Nedir?
Basitçe WordPress Hook, WordPress’in belirli bir işlem sırasında sana “Burada kendi kodunu çalıştırabilirsin” dediği noktalardır.
Bu sayede:
- Çekirdek koduna dokunmadan özelleştirme yapabilirsin.
- Tema ve eklentilerin davranışını değiştirebilirsin.
- Kendi fonksiyonlarını sisteme ekleyebilirsin.
WordPress Hook’lar iki ana kategoriye ayrılır:
- Action Hook – Belirli bir noktada kendi kodunu çalıştırır.
- Filter Hook – Var olan veriyi değiştirip geri döndürür.
Action Hook Nedir?
Action Hook, bir olay gerçekleştiğinde senin fonksiyonunu çalıştırır.
Örneğin:
- Yazı yayınlandığında bir e-posta göndermek.
- Kullanıcı giriş yaptığında log kaydı oluşturmak.
- Footer’a ek bir bilgi eklemek.
Örnek:
function wlnk_custom_footer() {
echo '<p>Bu site Wolinka tarafından geliştirildi.</p>';
}
add_action('wp_footer', 'wlnk_custom_footer');
Bu kod, wp_footer action hook’una bağlanarak footer kısmına kendi mesajını ekler.
Filter Hook Nedir?
Filter Hook ise veriyi yakalar, değiştirir ve geri verir.
Örneğin:
- Yazı başlıklarını otomatik olarak büyük harfe çevirmek.
- İçerikte belirli kelimeleri filtrelemek.
- WooCommerce fiyat gösterimini özelleştirmek.
Örnek:
function wlnk_change_title($title) {
return '🔥 ' . $title;
}
add_filter('the_title', 'wlnk_change_title');
Bu kod, her yazı başlığının başına bir emoji ekler.
Action ve Filter Arasındaki Farklar
| Özellik | Action Hook | Filter Hook |
|---|---|---|
| Tanım | Belirli bir olay gerçekleştiğinde çalışır ve ek fonksiyonlar eklemeni sağlar. | Var olan bir veriyi alır, üzerinde değişiklik yapar ve değiştirilen veriyi geri döndürür. |
| Amaç | Sisteme yeni işlevler ekler, ek aksiyonlar başlatır. | Mevcut veriyi kullanıcıya gösterilmeden önce düzenler veya filtreler. |
| Çalışma Anı | WordPress içinde belirlenen olay veya süreç tetiklendiğinde. (Örn: yazı yayınlandığında, kullanıcı giriş yaptığında) | Veri WordPress’ten ekrana veya işleme gitmeden hemen önce. (Örn: başlık gösterilmeden önce, içerik kaydedilmeden önce) |
| Kullanım Yöntemi | add_action('hook_adi', 'fonksiyon_adi'); | add_filter('hook_adi', 'fonksiyon_adi'); |
WordPress Hook Kullanmanın Avantajları
- Güncelleme güvenliği: Çekirdek dosyalar yerine fonksiyon olarak eklediğin için, WordPress veya tema güncellendiğinde yaptığın değişiklikler korunur.
- Tema bağımsızlığı: Hook’lar genellikle
functions.phpdosyasında veya özel eklentilerde çalıştığı için, tema değiştirsen bile özelleştirmeler korunur. - Esneklik: Tek bir satır kodla sitenin birçok farklı noktasında değişiklik yapabildiğin, işlev ekleyebildiğin veya mevcut veriyi özelleştirebildiğin için yüksek esneklik sağlar.
En Çok Kullanılan WordPress Hook’lar
Action Hook Örnekleri:
init– WordPress yüklenirken çalışır.wp_enqueue_scripts– CSS/JS dosyalarını eklemek için.wp_footer– Footer alanına kod eklemek için.
Filter Hook Örnekleri:
the_content– Yazı içeriğini değiştirmek için.the_title– Başlığı değiştirmek için.excerpt_length– Özet uzunluğunu belirlemek için.
Hook Kullanırken Dikkat Etmen Gerekenler
- Fonksiyon isimlerinin benzersiz olması: Çakışmaları önlemek için benzersiz bir önek (prefix) kullanılması iyi olur. Örneğin
wolinka_. - Gereksiz yük bindirilmemesi: Fazla sayıda hook eklenmesi sitenin performansını olumsuz etkileyebilir. Yalnızca gerekli noktalara bağlanılması ve gereksiz bağlamaların kaldırılması önerilir.
- Temiz kod yazımı: Gereksiz
echoifadelerinden kaçınılması, fonksiyonların küçük ve tek sorumluluk prensibine uygun yazılması önemlidir. Filter kullanıldığında değiştirilen değerin geri döndürülmesi gerekir. - Child tema veya özel eklenti kullanımı: Yapılan değişiklikler child tema içindeki
functions.phpdosyasında veya özel eklenti içinde tutulmalıdır. Bu yöntem, çekirdek dosyalara veya parent temaya müdahale edilmesini önler ve güncelleme güvenliği sağlar.
Kendi Hook’unu Oluşturmak
Evet, sadece var olan hook’lara bağlanmak zorunda değilsin. Kendi temanda veya eklentinde yeni hook’lar tanımlayabilirsin.
Örnek:
do_action('wolinka_before_content');
Bunu eklediğin yere başka geliştiriciler veya sen kendi fonksiyonlarını bağlayabilirsin:
function wolinka_show_ad() {
echo '<div>Reklam Alanı</div>';
}
add_action('wolinka_before_content', 'wolinka_show_ad');
Sonuç: Hook’larla WordPress’e İmzanı At
WordPress Hook, seni tema ve eklenti kısıtlamalarından kurtaran sihirli bir araçtır.
Action ile istediğin noktada kodunu çalıştırabilir, Filter ile veriyi kendi tarzına göre değiştirebilirsin.
Bunu öğrendiğinde, artık hazır çözümlere bağımlı kalmazsın.
Çünkü siten tam senin istediğin gibi çalışmaya başlar ✌️
Ve işin en güzel yanı, bunu tek başına yapmak zorunda değilsin. İstersen birlikte oturur, projenin ihtiyaçlarını belirler ve sana özel çözümler üretiriz. Böylece hayalindeki WordPress siteni adım adım hayata geçiririz.
WordPress projende özelleştirme, performans optimizasyonu veya özel geliştirme desteği almak istersen, iletişim sayfamızdan bize ulabilirsin 🤗
Sevgiler 🫶