Bersyarat if ( isset($wp_filter['all']) ) {
Anda dapat menemukan tepat di fungsi-fungsi pembuatan kait ini:
apply_filters
apply_filters_ref_array
do_action
do_action_ref_array
Perbedaannya adalah jumlah argumen yang dikirim. Entah kita membutuhkan beberapa argumen, ref_array
atau argumen tunggal. Perbedaan lainnya "tindakan vs. filter" adalah sederhana, tindakan dapat melakukan fungsi / tindakan apa pun, dan nama filter biasanya dicadangkan untuk fungsi yang mengambil data string dan mengembalikan data yang difilter.
OK, inilah cara Anda membuat kait. Dan kait memang memiliki nama, dan Anda dapat menangkap beberapa nama fungsi dengan nama kait yang sama (baca: tag).
Tetapi begitu Anda mendefinisikan semua fungsi yang terkait dengan kait tertentu, Anda perlu menyimpan semua nama kait dan nama fungsi terkait di suatu tempat. Inilah sebabnya kami berada global $wp_filter
di WordPress. Jika Anda menampilkan variabel itu, Anda akan mendapatkan sesuatu seperti ...
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
)
)
)
Baiklah, janganlah kita berdebat tentang nama variabel ini. Secara pribadi, saya akan menyebutnya berbeda, kemungkinan $wp_hooks
karena nama ini tidak diambil. Namun, jika kita kembali ke sejarah kita akan menemukan do_action
adalah sejak dulu @since 1.2.0
dan apply_filters
sekarang @since 0.71
(dirilis 9 Juni 2003). Itu memberi Anda penjelasan yang cukup bagus mengapa itu disebut $wp_filter
. Ini sangat mungkin karena filter diperkenalkan pertama kali di WordPress. Kemudian mereka memperkenalkan tindakan.
Hanya membangun dikatakan dari @TheDeadMedic ...
add_action ('semua', 'apa pun') akan berarti kebakaran apa pun untuk setiap do_action, terlepas dari nama kaitnya.
Saya mengajukan pertanyaan mengapa kita perlu $wp_filter['all']
? Hanya beberapa contoh. Introspeksi, pengujian, dan kemungkinan lebih banyak fitur internal sistem di versi WordPress yang akan datang.