Filtreler nedir?
Filtreler , WordPress'in verilerle bir işlem yapmadan hemen önce (veritabanına eklemek veya tarayıcı ekranına göndermek gibi), yürütmenin belirli noktalarında verileri ilettiği işlevlerdir. Filtreler veritabanı ile tarayıcı (WordPress sayfa oluştururken) ve tarayıcı ile veritabanı arasında (WordPress veritabanına yeni yayınlar ve yorumlar eklerken) oturur; WordPress'deki çoğu girdi ve çıktı en az bir filtreden geçer. WordPress varsayılan olarak bazı filtreleme yapar ve eklentiniz kendi filtrelemesini ekleyebilir.
Bir Filtreye Bağlanma
Kullanıcıların bazı belirli verileri (bir değer, bir fonksiyonun çıkışı vb.) Değiştirmesine izin vermek için, fonksiyonlar aracılığıyla filtre kancaları sağlanır apply_filters
.
Bu filtre kancaları, filtrenin adını (veya etiketini ) ve en azından filtrelemek için kullanılacak işlev adını içerir (yani bir şekilde değiştirmek) için .
Bir yazının başlığını değiştirmek için the_title
, aşağıdaki gibi tanımlanan filtre kancasını kullanabilirsiniz :
apply_filters( 'the_title', $title, $id );
Bu, filtrenin etiketine / adına sahip olduğu anlamına gelir, the_title
ilk parametre $title
değiştirilecek verilerdir (yani posta başlığı) ve ikinci parametre $id
fazladan bilgilerdir (bu durumda posta kimliği).
Görüntülemek için her yazının başlığı BÜYÜK HARF, örneğin, aşağıdaki satırı kullanabilirsiniz:
add_filter('the_title', 'strtoupper');
İşleve bakarsak add_filter
, bunun aşağıdaki gibi tanımlandığını görürüz:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Üçüncü ve dördüncü parametre ilgili varsayılan değerine (yani 10
ve 1
) ayarlanmışken yalnızca birinci ve ikinci (gerekli) parametreyi belirledik .
Daha Karmaşık Bir Filtre
Yalnızca belirli bir gönderiyi filtrelemek istiyorsanız , ek bilgileri kullanabilirsiniz (bu filtre durumunda: kimlik). Bunu yapmak için, parametre sayısını belirtmelisiniz (bu durumda 2'dir) ve bunu tekrar yapmak için, öncelik parametresini (argüman sayısından önce gelir) belirtmeniz gerekir.
Diyelim ki yalnızca 42 numaralı kimliğin başlığını etkilemek istiyoruz, o zaman şöyle görünür:
add_filter('the_title', 'my_strtoupper', 10, 2);
function my_strtoupper($title, $id) {
if (42 === $id) return strtoupper($title);
return $title;
} // function my_strtoupper
Bu durumda, mevcut dört parametrenin tümünü belirtmeliyiz.
Hangi Parametrelerim Var?
Belirli bir filtrenin kullanılabilir parametrelerini (sayısını) tanımlamak için, nerede tanımlandığına bakmanız gerekir (bu durumda: burada ).
Kaynaklar :