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; }