WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

remove_filter()WP 1.2.0

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

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

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

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

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

Хуков нет.

Возвращает

true|false. true — хук был удален или false — хук не был удален.

Использование

remove_filter( $tag, $function_to_remove, $priority );
$tag(строка) (обязательный)
Название фильтра, функцию которого нужно будет удалить.
$function_to_remove(строка) (обязательный)
Название функции, которую нужно удалить.
$priority(число)
Приоритет хука (функции), который был установлен во время добавления.
По умолчанию: 10

Примеры

0

#1 Отключим фильтр wpautop у хука the_content

remove_filter( 'the_content', 'wpautop' );
0

#2 Удалим фильтр capital_P_dangit у нескольких хуков сразу

foreach ( array( 'the_content', 'the_title', 'comment_text' ) as $hook )
	remove_filter( $hook, 'capital_P_dangit' );
0

#3 Удаление фильтра добавленного из PHP класса

Если в качестве функции хука, используется функция какого-либо класса, то удалять её нужно по-другому:

global $my_class;
remove_filter( 'the_content', array( $my_class, 'class_filter_function') );

Еще про удаление фильтров для классов читайте в описании remove_action()

0

#4 Еще примеры удаления

Смотрите в статье про хуки.

Заметки

  • Global. WP_Hook[]. $wp_filter Stores all of the filters and actions.

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

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

Код remove_filter() WP 6.5.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;
}
3 комментария
    Войти