Описание
Удаляем указанную функцию "прицепленную" к указанному фильтру.
Можно использовать, чтобы удалить какие-либо уже имеющиеся хуки в WordPress или для удаления хуков, которые добавляются плагинами, но мешают (конфликтуют) с кодом.
ВАЖНО: При удалении хука, риоритет ($priority) должн совпадать с тем, что был установлен при создании хука. Если не совпадет, вы не увидите никаких предупреждений об этом - функция просто вернет false.
remove_filter() используется в: remove_action().
Функция возвращает true — хук был удален или false — хук не был удален.
Использование
<?php remove_filter($tag, $function_to_remove, $priority, $accepted_args); ?>
Параметры
- $tag (строка) (обязательный)
- Название фильтра, функцию которого нужно будет удалить.
По умолчанию: нет - $function_to_remove (строка) (обязательный)
- Название функции, которую нужно удалить.
По умолчанию: нет - $priority (число)
- Приоритет хука (функции), который был установлен во время добавления.
По умолчанию: 10 - $accepted_args (число)
- Число аргументов хука.
По умолчанию: 1
Примеры
1. Отключим фильтр wpautop у хука the_content:
remove_filter( 'the_content', 'wpautop' );
2. Удалим фильтр capital_P_dangit у хуков 'the_content', 'the_title', 'comment_text':
foreach ( array( 'the_content', 'the_title', 'comment_text' ) as $hook )
remove_filter( $hook, 'capital_P_dangit' );
3. Если в качестве функции хука, используется функция какого-либо класса, то удалять её нужно по-другому:
global $my_class; remove_filter( 'the_content', array($my_class, 'class_filter_function') );
На заметку
Невозможно удалить фильтр, до того как он был добавлен!
Когда удаляется хук, который создавался внутри класса, то передавать нужно именно тот экземпляр класса из которого создавался хук.
remove_filter()
из файла: /wp-includes/plugin.php WP 3.3.2function remove_filter($tag, $function_to_remove, $priority = 10, $accepted_args = 1) {
$function_to_remove = _wp_filter_build_unique_id($tag, $function_to_remove, $priority);
$r = isset($GLOBALS['wp_filter'][$tag][$priority][$function_to_remove]);
if ( true === $r) {
unset($GLOBALS['wp_filter'][$tag][$priority][$function_to_remove]);
if ( empty($GLOBALS['wp_filter'][$tag][$priority]) )
unset($GLOBALS['wp_filter'][$tag][$priority]);
unset($GLOBALS['merged_filters'][$tag]);
}
return $r;
}Ещё из раздела
Смотрите также: Функции WordPress и Теги Шаблона.
Иностранные языки всегда ценились, а особенно английский - мировой язык. Зная английский язык вы сможете общаться в любой стране мира, ну или почти в любой, поэтому один из первых языков которые стоит изучать это, конечно, английский! Хорошая школа английского языка даст вам базовый навык общения и хороший стимул развивать свой английский дальше, поэтому к выбору школы нужно подходить крайне щепетильно.
