Saya telah mencari penjelasan yang cocok tentang perbedaan antara add_filter()
dan apply_filters()
di sini tetapi tidak dapat menemukannya.
Adakah yang bisa memberi tahu saya informasi atau logika apa yang perlu dipertimbangkan sebelum menggunakan add_filter
atau apply_filters
dalam satu konteks.
Itu membuat penggunaan satu keharusan dan bukan yang lain?
Apakah benar bahwa
add_filter
hanya menambahkan fungsi ke antrian fungsi yang menunggu untuk dieksekusi pada variabel danapply_filters
menjalankan fungsi secara berurutan?Apakah benar juga bahwa
apply_filters
ketika dipanggil dengan argumen (nama fungsi yang akan dijalankan) akan menjalankan fungsi itu sebelum semua yang lain (jika ada) dalam antrian?
plugins
customization
Hanachi
sumber
sumber
Jawaban:
Sebagian besar dari yang berikut ini dapat ditemukan di Codex :
apply_filters
Pada intinya:
Anda menggunakan
apply_filters
untuk menyaring diberikan$value
- sehubungan dengan nilai itu sendiri serta variabel opsional disediakan$var_1
melalui$var_n
.add_filter
Intinya:
Anda menggunakan
add_filter
untuk mengaitkan fungsi khusus ke aksi filter yang diberikan ($tag
), yang mungkin Anda hasilkanapply_filters
sebelumnya (atau itu adalah tindakan filter bawaan atau berasal dari plugin / tema Anda).Jadi, inilah contoh fiksi :
Sekarang, jika kita panggil fungsi kita apa adanya, inisial dicetak dari kiri ke kanan — karena inilah yang kita definisikan sebagai perilaku default.
Kedua kalinya, kami mendapatkan inisial dalam urutan terbalik — karena fungsi filter
__return_true
, yang dikaitkan dengan aksi filter kami, selalu kembaliTRUE
dan dengan demikian membuat inisial menjadi output dari kanan ke kiri.sumber