WordPress çekirdek dosyalarını değiştirmeden tema ve eklentilere yeni işlevler kazandırmak için hooks adı verilen kanca sisteminden yararlanılır. Bu yapı sayesinde geliştiriciler, WordPress çalışırken belirli noktalarda kendi fonksiyonlarını devreye sokabilir veya işlenen verileri ekrana ulaşmadan önce düzenleyebilir. Hooks sistemi temel olarak action ve filter olmak üzere ikiye ayrılır. Bu rehberde WordPress hooks nedir, action ve filter nasıl kullanılır ve aralarındaki farklar nelerdir sorularını ele alıyoruz.

WordPress Hooks Nedir?
WordPress hooks, belirli bir olay gerçekleştiğinde özel kodların çalıştırılmasını sağlayan bağlantı noktalarıdır. WordPress çekirdeği, temalar ve eklentiler çalışma sürecinin farklı aşamalarında çeşitli kancalar sunar. Geliştirici, hazırladığı fonksiyonu uygun kancaya bağlayarak mevcut işleyişe müdahale edebilir.
Hooks sistemi sayesinde WordPress çekirdek dosyalarının doğrudan düzenlenmesine gerek kalmaz. Çekirdek üzerinde yapılan değişiklikler güncelleme sonrasında kaybolabileceği gibi güvenlik ve uyumluluk sorunları da oluşturabilir. Kancalar ise özelleştirmelerin tema veya eklenti içerisinde bağımsız şekilde yönetilmesine imkân tanır.
WordPress hooks iki temel gruba ayrılır:
- Action: Belirli bir olay meydana geldiğinde yeni bir işlem çalıştırır.
- Filter: İşlenen veriyi alır, değiştirir ve tekrar sisteme döndürür.
Her iki yapı benzer bir bağlantı mantığı kullansa da amaçları ve fonksiyonların davranışları farklıdır.

WordPress Action Nedir?
Action, WordPress çalışma sürecindeki belirli bir noktada özel fonksiyonun devreye girmesini sağlar. Sayfa yüklenirken, yazı yayımlanırken, kullanıcı oturum açarken veya yönetim paneli hazırlanırken action kancaları kullanılabilir.
Örneğin bir yazı yayımlandığında kayıt oluşturmak, yönetim paneline bildirim eklemek veya sayfanın belirli alanında içerik göstermek için action tercih edilebilir.
Bir fonksiyon action kancasına add_action() ile bağlanır:
function ozel_bilgi_mesaji() {
echo '<p>Bu içerik özel bir işlemle eklendi.</p>';
}
add_action( 'wp_footer', 'ozel_bilgi_mesaji' );
Bu örnekte ozel_bilgi_mesaji() fonksiyonu, wp_footer action kancası çalıştığında devreye girer. Böylece hazırlanan içerik sitenin alt bölümüne eklenir.
Action fonksiyonunun bir değer döndürmesi zorunlu değildir. Fonksiyon genellikle çıktı üretir, kayıt oluşturur, bildirim gönderir veya başka bir işlemi başlatır.

WordPress Filter Nedir?
Filter, WordPress tarafından işlenen bir verinin kullanılmadan veya görüntülenmeden önce değiştirilmesini sağlar. Başlıklar, içerikler, bağlantılar, sınıflar ve çeşitli ayar değerleri filter kancaları üzerinden düzenlenebilir.
Bir fonksiyon filter kancasına add_filter() kullanılarak bağlanır:
function basliga_ifade_ekle( $baslik ) {
return $baslik . ' | Domainhizmetleri';
}
add_filter( 'the_title', 'basliga_ifade_ekle' );
Bu örnekte WordPress tarafından oluşturulan yazı başlığı fonksiyona aktarılır. Başlığın sonuna yeni bir ifade eklendikten sonra düzenlenmiş değer return ile sisteme gönderilir.
Filter fonksiyonlarında işlenen verinin geri döndürülmesi gerekir. Değer döndürülmezse başlık veya içerik gibi ilgili veri boş kalabilir ve web sayfasının işleyişi bozulabilir.

Action ve Filter Arasındaki Farklar Nelerdir?
Action ile filter arasındaki temel fark, kodun hangi amaçla çalıştırıldığıdır. Action yeni bir işlem gerçekleştirirken filter mevcut veriyi dönüştürür.
| Özellik | Action | Filter |
|---|---|---|
| Temel amaç | Bir işlem başlatmak | Mevcut veriyi değiştirmek |
| Kullanılan fonksiyon | add_action() | add_filter() |
| Değer döndürme | Genellikle gerekli değildir | Zorunludur |
| Örnek kullanım | Bildirim veya kayıt oluşturma | Başlık veya içerik düzenleme |
| İşlenen veri | Her zaman bulunmayabilir | Fonksiyona veri aktarılır |
Bir e-posta bildirimi göndermek veya yönetim paneline yeni bir alan eklemek gerekiyorsa action kullanılabilir. Yazı başlığını, içerik metnini ya da bir ayar değerini değiştirmek gerektiğinde ise filter tercih edilir.

Hook Önceliği Nasıl Belirlenir?
Aynı hook üzerine birden fazla fonksiyon bağlanabilir. Bu durumda fonksiyonların hangi sırayla çalışacağı priority adı verilen öncelik değeriyle belirlenir.
Varsayılan öncelik değeri 10 olarak kabul edilir:
add_action( 'wp_footer', 'ilk_fonksiyon', 5 ); add_action( 'wp_footer', 'ikinci_fonksiyon', 20 );
Daha düşük öncelik değerine sahip fonksiyon daha önce çalışır. Bu örnekte ilk_fonksiyon önce, ikinci_fonksiyon ise daha sonra devreye girer.
Filter kullanımlarında sıralama daha fazla önem taşıyabilir. Bir filter tarafından değiştirilen veri, aynı kancaya bağlı sonraki fonksiyona aktarılır. Bu nedenle öncelik değerleri belirlenirken diğer tema ve eklentilerin yaptığı işlemler de dikkate alınmalıdır.

Hook Fonksiyonlarına Parametre Nasıl Aktarılır?
Bazı kancalar bağlı fonksiyona birden fazla değer gönderebilir. Fonksiyonun kabul edeceği parametre sayısı add_action() veya add_filter() içerisindeki dördüncü değerle belirtilir.
function yazi_kayit_bilgisi( $yazi_id, $yazi, $guncelleme ) {
if ( $guncelleme ) {
return;
}
// Yeni yazı kaydedildiğinde çalışacak işlem
}
add_action( 'wp_insert_post', 'yazi_kayit_bilgisi', 10, 3 );
Bu örnekte fonksiyon üç parametre kabul eder. Kabul edilen parametre sayısı yanlış tanımlanırsa ihtiyaç duyulan verilere erişilemeyebilir veya PHP hatası oluşabilir.
Kullanılacak kancanın sunduğu parametreler kontrol edilmeli ve fonksiyon buna uygun şekilde hazırlanmalıdır.

Eklenen Bir Hook Nasıl Kaldırılır?
Daha önce bağlanan fonksiyonlar remove_action() veya remove_filter() ile ilgili kancadan ayrılabilir:
remove_action( 'wp_footer', 'ozel_bilgi_mesaji', 10 ); remove_filter( 'the_title', 'basliga_ifade_ekle', 10 );
Kaldırma işleminin başarılı olması için hook adı, fonksiyon adı ve öncelik değeri ilk tanımlamayla eşleşmelidir. Ayrıca kaldırma kodu, ilgili fonksiyon kancaya eklendikten sonra çalıştırılmalıdır.
Anonim fonksiyonlarla eklenen işlemleri sonradan kaldırmak daha zor olabilir. Başka bir tema veya eklenti tarafından kullanılabilecek kancalarda isimlendirilmiş fonksiyonların tercih edilmesi yönetimi kolaylaştırır.

WordPress Hooks Kullanılırken Nelere Dikkat Edilmelidir?
Hook fonksiyonları kısa, anlaşılır ve yalnızca gerekli işlemi gerçekleştirecek şekilde hazırlanmalıdır. Her sayfa yüklemesinde çalışan bir kancaya ağır veri tabanı sorguları eklemek site performansını olumsuz etkileyebilir.
Fonksiyon adlarının başka tema ve eklentilerle çakışmasını önlemek için projeye özel ön ek kullanılabilir. Kullanıcıdan alınan veriler kaydedilmeden önce temizlenmeli, ekrana gönderilen çıktılar uygun şekilde güvenli hâle getirilmelidir.
Çekirdek dosyalara müdahale edilmemeli ve özelleştirmeler tercihen özel eklenti veya child theme içerisinde tutulmalıdır. Canlı web sitesine aktarılmadan önce kodlar test ortamında kontrol edilmelidir. Oluşabilecek PHP hatalarına karşı değişiklik öncesinde güncel yedek alınması da önemlidir.
Sonuç
WordPress hooks, çekirdek dosyaları değiştirmeden sistemin çalışma sürecine yeni özellikler eklemeyi ve mevcut verileri düzenlemeyi sağlar. Action kancaları belirli olaylarda işlem başlatırken filter kancaları kendilerine aktarılan değeri değiştirerek sisteme geri gönderir. Doğru kanca, öncelik ve parametre yapısının kullanılması; güvenli, uyumlu ve sürdürülebilir WordPress geliştirmeleri için önemlidir.

Domainhizmetleri olarak hızlı, güvenli ve stabil hosting altyapımızla WordPress projelerinize uygun çözümler sunuyoruz. WordPress siteleriniz için optimize edilen hosting hizmetlerimizden yararlanarak tema ve eklentilerinizi yüksek performanslı bir altyapıda çalıştırabilirsiniz.




