remove_all_filters()
Удаляет все хуки у указанного фильтра.
Функция удалить все привязанные к фильтру функции. Если указать приоритет в параметре $priority, то будут удалены только хуки с указанным приоритетом, а не все...
Основа для: remove_all_actions()
Хуков нет.
Возвращает
true
. Всегда возвращает 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.7.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; }