Filter hook ini sama mudahnya dipahami. Alasan kita memakai filter hook adalah memodifikasi sebuah nilai, memfilter sebuah nilai atau juga mereplace sebuah nilai dengan nilai baru. Sama seperti action hook, disini juga ada fungsi yang memfilter sebuah nilai dengan fungsi-fungsi filter hook yang dikaitkan (apply_filter) dan juga ada fungsi wordpress untuk menambahkan filter hook untuk dikaitkan (add_filter). Contohnya seperti kita memiliki sebuah fungsi dengan nama email_notify yang tampak seperti ini:
…
$message=’Dear Mustofa, Bisakomputer telah memperbarui tampilan website menjadi responsive website. Sekarang Anda dapat membuka bisakomputer.com dengan memakai beberapa device mobile yang Anda gunakan.’;
$message=apply_filter(‘email_notify_message’,$message);
wp_mail( $to, $subject, $message, $headers, $attachments );
Dari kode diatas, kita menginginkan nilai sebuah variabel $message dapat difilter oleh developer lain. Difilter disini, bisa bermaksud mengganti nilai message, menambahkan sesuatu ke message dan lain-lain. Kemudian kita mendefinisikan apply_filter dengan tag ’email_notify_message’ untuk memfilter, memodifikasi, atau mereplace nilai $message dengan filter hook yang dikaitkan pada ’email_notify_message’. Core WordPress banyak menyediakan filter-filter tag yang dapat mengubah nilai varibel pada pemrosesannya. Kita dapat menemukannnya pada dokumentasi codex atau link berikut di sini.
Sama seperti action yang memanfaatkan fungsi add_action, kita dapat memanfaatkan add_filter untuk menambahkan filter fungsi buatan kita dengan cara seperti ini:
add_filter(‘email_notify_message’,function($message){
// Mengganti nilai message
$new_message =’Hello Mustofa, bla..bla..bla’;
// Menambahkan nilai message
$new_message = $message.’ Salam bisakomputer.com’;
return $new_message;
});
Yang perlu kita perhatikan disini adalah fungsi filter hook mengembalikan sebuah nilai. Pada add_filter juga terdapat 4 arguments yang bisa dimasukkan yaitu tag filter, fungsi callback, prioritas dan terakhir jumlah arguments yang diikutkan.
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Filter hook ini banyak dipakai oleh developer theme WordPress agar theme buatannya dapat dibuat child theme. Berikut adalah fungsi-fungsi referensi WordPress untuk keperluan filter hook ini.
Filter hook function reference
- has_filter()
- add_filter()
- apply_filters()
- current_filter()
- merge_filters()
- remove_filter()
- remove_all_filters()