Şartlı if ( isset($wp_filter['all']) ) {olarak şu kanca oluşturma işlevlerinde bulabilirsiniz:
apply_filters
apply_filters_ref_array
do_action
do_action_ref_array
Bunlar arasındaki fark gönderilen argüman sayısındadır. Ya birden fazla argümana, ref_arrayya da tek bir argümana ihtiyacımız var. Diğer eylem "eylem ve filtre" basittir, eylem herhangi bir işlev / eylem yapabilir ve filtre adı genellikle dize verisi alıp filtrelenen verileri döndüren işlevler için ayrılmıştır.
Tamam, kancaları böyle yaratırsınız. Kancaların isimleri vardır ve aynı kanca adında birden çok işlev adı avlayabilirsiniz (okuma: etiket).

Ancak, belirli kancalarla ilişkili tüm işlevleri tanımladıktan sonra, tüm kanca adlarını ve ilişkili işlev adlarını bir yerde saklamanız gerekir. Bu yüzden global $wp_filterWordPress'te varız . Eğer bu değişkenin çıktısını alırsanız ...
Array
(
[pre_term_name] => Array
(
[10] => Array
(
[sanitize_text_field] => Array
(
[function] => sanitize_text_field
[accepted_args] => 1
)
[wp_filter_kses] => Array
(
[function] => wp_filter_kses
[accepted_args] => 1
)
)
[30] => Array
(
[_wp_specialchars] => Array
(
[function] => _wp_specialchars
[accepted_args] => 1
)
)
)
Bu değişkenin adı üzerinde tartışmayalım. Şahsen, $wp_hooksbu isim alınmadığı için buna farklı, muhtemel diyebilirim . Bununla birlikte, eğer geçmişe dönersek, do_actiono zamandan beri @since 1.2.0ve apply_filtersbulacağız @since 0.71(9 Haziran 2003'te yayınlandı.). Bu size neden çağrıldığını oldukça iyi açıklıyor $wp_filter. En olası olanı, filtrelerin ilk olarak WordPress'te tanıtılmasıdır. Daha sonra eylemler başlattılar.
Sadece @TheDeadMedic den söyleniyor bina ...
add_action ('all', 'whatever'), çağrının adından bağımsız olarak her do_action için ne tetiklenirse o anlama gelir.
İhtiyacımız var neden sorusunu gündeme $wp_filter['all']? Sadece birkaç örnek. Gelecek WordPress sürümlerinde içgözlem, testler ve olası daha fazla sistem dahili özelliği.