remove_filter()
Видаляє цю функцію, прикріплену до зазначеного фільтра.
Можна використовувати, щоб видалити будь-які вже наявні хуки WordPress або для видалення хуків, які додаються плагінами, але заважають (конфліктують) з кодом.
ВАЖЛИВО: При видаленні хука, пріоритет ($priority) повинен збігатися з тим, що був встановлений під час створення хука. Якщо не збігається, ви не побачите жодних попереджень про це – функція просто поверне false.
нотатки
Неможливо видалити фільтр, перш ніж він був доданий!
- Коли видаляється хук, що створювався всередині класу, то передавати потрібно саме той екземпляр класу, з якого створювався хук.
Читайте також: Хуки в WordPress (видалення хуків)
remove_action()
(швидкість світла) | 50000 разів – 0.06 сек
(швидкість світла)
Хуків немає.
Повертає
true|false
. true – хук було видалено або false – хук не видалено.
Використання
remove_filter($tag, $function_to_remove, $priority);
-
$tag
(рядок) (обов’язковий) - Назва фільтра, функцію якого потрібно видалити.
-
$function_to_remove
(рядок) (обов’язковий) - Назва функції, яку потрібно видалити.
-
$priority
(число) -
Пріоритет хука (функції), встановленого під час додавання.
Типово: 10 -
$accepted_args
(видалений у WP 3.5) - Цей параметр не можна вказувати.
Приклади
#1 Відключимо фільтр wpautop
у хукаthe_content
remove_filter( 'the_content', 'wpautop');
#2 Видалимо фільтр capital_P_dangit
у кількох хуків відразу
foreach ( array( 'the_content', 'the_title', 'comment_text' ) as $hook ) remove_filter($hook, 'capital_P_dangit');
#3 Видалення фільтра доданого з PHP класу
Якщо як функція хука, використовується функція якого-небудь класу, то видаляти її потрібно по-іншому:
global $my_class; remove_filter( 'the_content', array( $my_class, 'class_filter_function') );
Ще про видалення фільтрів для класів читайте в описі remove_action()
#4 Ще приклади видалення
Дивіться у статті про хуки .
нотатки
- Global. WP_Hook[]. $wp_filter Stores all of the filters and actions.
список змін
З версії 1.2.0 | Введено. |
Код remove_filter() remove filter WP 6.0.2
function remove_filter( $hook_name, $callback, $priority = 10 ) { Global $wp_filter; $ r = false; if ( isset( $wp_filter[ $hook_name ] ) ) { $r = $wp_filter[ $hook_name ]->remove_filter( $hook_name, $callback, $priority ); if ( ! $wp_filter[ $hook_name ]->callbacks ) { unset($wp_filter[$hook_name]); } } return $r; }