remove_all_filters()WP 2.7.0

Удаляет все хуки у указанного фильтра.

Функция удалить все привязанные к фильтру функции. Если указать приоритет в параметре $priority, то будут удалены только хуки с указанным приоритетом, а не все...

Хуков нет.

Возвращает

true. Удалось или нет удалить хуки.

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

remove_all_filters( $tag, $priority );
$tag(строка) (обязательный)
Название фильтра, все хуки которого нужно удалить.
$priority(число)

Приоритет хуков, которые нужно удалить.

  • Если указать, то будут удалены только хуки с этим приоритетом.
  • Если не указать (оставить false), то будут удалены абсолютно все прикрепленные к фильтру хуки.

По умолчанию: false

Примеры

0

#1 Удалим все прикрепленные к фильтру функции (хуки)

remove_all_filters( 'wp_mail_from' );
0

#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() WP 5.9.3

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