WordPress как на ладони
wordpress jino

remove_all_filters() WP 2.7.0

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

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

Хуков нет.

Возвращает

true или false, в зависимости от того удалось ли удалить хуки.

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

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

Примеры

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

remove_all_filters( 'wp_mail_from' );

#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' );

Код remove all filters: wp-includes/plugin.php WP 4.8.2

<?php
function remove_all_filters( $tag, $priority = false ) {
	global $wp_filter;

	if ( isset( $wp_filter[ $tag ]) ) {
		$wp_filter[ $tag ]->remove_all_filters( $priority );
		if ( ! $wp_filter[ $tag ]->has_filters() ) {
			unset( $wp_filter[ $tag ] );
		}
	}

	return true;
}

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

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

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

remove_all_filters Комментариев нет

Здравствуйте, !

Ваш комментарий