WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

remove_filter() WP 1.2.0

Удаляет указанную функцию прикрепленную к указанному фильтру.

Можно использовать, чтобы удалить какие-либо уже имеющиеся хуки в WordPress или для удаления хуков, которые добавляются плагинами, но мешают (конфликтуют) с кодом.

ВАЖНО: При удалении хука, приоритет ($priority) должен совпадать с тем, что был установлен при создании хука. Если не совпадет, вы не увидите никаких предупреждений об этом - функция просто вернет false.

Заметки
  • Невозможно удалить фильтр, до того как он был добавлен!

  • Когда удаляется хук, который создавался внутри класса, то передавать нужно именно тот экземпляр класса из которого создавался хук.
Основа для: remove_action()
1 раз = 0.с = скорость света | 50000 раз = 0.06с = скорость света

Хуков нет.

Возвращает

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_filter Stores all of the filters and actions.

Список изменений

С версии 1.2.0 Введена.

Код remove_filter() WP 5.5.1

wp-includes/plugin.php
<?php
function remove_filter( $tag, $function_to_remove, $priority = 10 ) {
	global $wp_filter;

	$r = false;
	if ( isset( $wp_filter[ $tag ] ) ) {
		$r = $wp_filter[ $tag ]->remove_filter( $tag, $function_to_remove, $priority );
		if ( ! $wp_filter[ $tag ]->callbacks ) {
			unset( $wp_filter[ $tag ] );
		}
	}

	return $r;
}

Cвязанные функции

Из метки: Фильтры (хуки)

Еще из раздела: Хуки: события, фильтры

4 коммента