Если вам понадобилось посмотреть какие же фильтры установлены в текущий момент, то обращаться к WP API не нужно — такой функции нет. Полный список активных хуков хранится в глобальной переменной $wp_filter.
1 2 |
global $wp_filter; print_r($wp_filter); |
Это массив объектов-фильтров, распределенных по тегам-ключам, к которым эти фильтры прикреплены.
Добавление фильтров WP
Объявлять (цеплять) свои фильтры вы можете функцией:
function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 )
Здесь tag — имя зацепки, function_to_add — имя цепляемой функции, priority — приоритет и accepted_args — задаёт число аргументов, принимаемых функцией.
Пример добавления фильтра для списка рубрик (tag — wp_list_categories):
1 2 3 4 5 6 7 8 9 |
//добавляем фильтр (обычно в файле function.php темы оформления) add_filter('wp_list_categories', 'myfilter_wp_list_categories', 10, 2); function myfilter_wp_list_categories($output, $args) { //что то делаем с $output ... //возвращаем результат фильтрации return $output; } |
Удаление фильтров WP
Для удаления фильтров лучше воспользоваться функция WP API, а не удалять их самим из глобальной переменной:
function remove_filter( $tag, $function_to_remove, $priority = 10 ) — удаляет какой то один из фильтров (по имени фильтр-функции), а
function remove_all_filters( $tag, $priority = false ) — удаляет все фильтры, указанной зацепки.
Здесь где tag — это имя зацепки, а function_to_remove — это название подключенной функции-фильтра.