Я пытаюсь понять некоторые функции WordPress, но не могу понять, что на самом деле делает apply_filters (...) .
Может ли кто-нибудь прояснить мне это на нескольких примерах?
Я пытаюсь понять некоторые функции WordPress, но не могу понять, что на самом деле делает apply_filters (...) .
Может ли кто-нибудь прояснить мне это на нескольких примерах?
apply_filters()
является невероятно вводящим в заблуждение названием для функции, поскольку она применяет как фильтры, так и действия, привязанные к целевой функцииОтветы:
apply_filters($tag, $value)
передает аргумент «значение» каждой из функций, «подключенных» (использующихadd_filter
) к указанному «тегу» фильтра. Каждая функция выполняет некоторую обработку значения и возвращает измененное значение для передачи следующей функции в последовательности.Например, по умолчанию (в WordPress 2.9)
the_content
фильтр передает значение через следующую последовательность функций:источник
apply_filters($value)
оно стирает значение ...поздний ответ
Краткое объяснение
apply_filters()
взаимодействует сglobal $wp_filters
массивом. По сути, он просто проверяет массив, если текущий фильтр (или ловушка) имеет прикрепленное действие (/ функцию обратного вызова), а затем вызывает его.Длинное объяснение
Когда вы прикрепляете обратный вызов / действие к фильтру или ловушке, вы просто добавляете имя обратного вызова в массив глобальных фильтров. Когда затем в коде (например, в шаблоне, ядре или файле плагина) происходит вызов
do_action()
илиapply_filters()
происходит, тогда WordPress выполняет поиск по массиву и вызывает обратный вызов. Единственное, что делает фильтры более особенными, чем хуки, это то, что они возвращают значение (для дальнейшей обработки) вместо того, чтобы просто запускать обратный вызов. Итак, резюмируем: ловушки предназначены для вставки данных, а фильтры - для изменения данных.источник
Вот что я понял, учитывая наиболее популярный ответ и дополнительные ресурсы:
<p>
теги, смайлы - в значки и т. Д.источник
В самых общих чертах, apply_filters используется для инициализации ловушки фильтра ... add_filter назначает новую функцию хукам, которые уже были созданы.
источник