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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *