remove_all_filters()
Видаляє всі хуки у зазначеного фільтра.
Функція видаляє всі прив’язані до фільтру функції. Якщо вказати пріоритет у параметрі $priority , будуть видалені тільки хуки з зазначеним пріоритетом, а не всі…
Хуків немає.
Повертає
true. Вдалося чи ні видалити хуки.
Використання
remove_all_filters($tag, $priority);
- $tag
(рядок) (обов’язковий) - Назву фільтра, всі хуки якого потрібно видалити.
- $priority
(число) Пріоритет хуків, які потрібно видалити.
- Якщо вказати, будуть видалені тільки хуки з цим пріоритетом.
- Якщо не вказати (залишити false), то буде видалено абсолютно всі прикріплені до фільтра хуки.
Типово: false
Приклади
#1 Видалимо всі прикріплені до фільтру функції (хуки)
remove_all_filters( 'wp_mail_from');
#2 Видалимо тільки хуки з пріоритетом 10, у фільтраthe_content
remove_all_filters( 'the_content', 10);
Це призведе до того що, більшість фільтрів тексту запису буде відключена – тобто. будуть відключені всі фільтри з пріоритетом 10. Ось такі:
// із файлу: /wp-includes/default-filters.php
add_filter( 'the_content', 'wptexturize');
add_filter( 'the_content', 'wpautop');
add_filter('the_content', 'shortcode_unautop');
add_filter( 'the_content', 'prepend_attachment');
add_filter( 'the_content', 'wp_make_content_images_responsive');
нотатки
- Global. WP_Hook[]. $wp_filter Stores all of the filters and actions.
список змін
| З версії 2.7.0 | Введено. |
Код remove_all_filters() remove all filters WP 6.0.2
function remove_all_filters( $hook_name, $priority = false ) {
Global $wp_filter;
if ( isset( $wp_filter[ $hook_name ] ) ) {
$wp_filter[ $hook_name ]->remove_all_filters( $priority );
if ( ! $wp_filter[ $hook_name ]->has_filters() ) {
unset($wp_filter[$hook_name]);
}
}
return true;
}