Что фактически применяет apply_filters (…) в WordPress?

Я пытаюсь понять некоторые функции WordPress, но не могу понять, что apply_filters (...) на самом деле.

Может ли кто-нибудь объяснить мне несколько примеров?

103 голоса | спросил Tim 16 FebruaryEurope/MoscowbTue, 16 Feb 2010 09:06:26 +0300000000amTue, 16 Feb 2010 09:06:26 +030010 2010, 09:06:26

4 ответа


0

apply_filters($tag, $value) передает аргумент 'value' каждой из функций 'hooked' (используя add_filter ) в указанный фильтр 'tag' , Каждая функция выполняет некоторую обработку значения и возвращает измененное значение, которое будет передано следующей функции в последовательности.

Например, по умолчанию (в WordPress 2.9) the_content фильтр пропускает значение через следующую последовательность функций:

  • wptexturize
  • convert_smilies
  • convert_chars
  • wpautop
  • shortcode_unautop
  • prepend_attachment
  • do_shortcode
ответил Richard M 16 FebruaryEurope/MoscowbTue, 16 Feb 2010 21:22:06 +0300000000pmTue, 16 Feb 2010 21:22:06 +030010 2010, 21:22:06
0

поздний ответ

Краткое объяснение

apply_filters() взаимодействует с массив global $wp_filters. По сути, он просто проверяет массив, если к текущему фильтру (или ловушке) прикреплено действие (/функция обратного вызова), а затем вызывает его.

Длинное объяснение

Когда вы присоединяете обратный вызов /действие к фильтру или ловушке, вы просто добавляете имя обратного вызова в массив глобальных фильтров. Когда тогда в коде (например, в шаблоне, файле ядра или плагина) вызывается do_action() или apply_filters() происходит, затем WordPress просматривает массив и вызывает обратный вызов. Единственное, что более важно для фильтров, чем для ловушек, это то, что он возвращает значение (для дальнейшей обработки), а не просто вызывает обратный вызов. Итак, подытожим: крючки предназначены для вставки данных, а фильтры - для изменения данных.

ответил kaiser 28 Jpm1000000pmMon, 28 Jan 2013 21:34:49 +040013 2013, 21:34:49
0

Вот что я собираю, учитывая самый популярный ответ и дополнительные ресурсы:

    $ li тег является синонимом имени хука. (Это не особенно интуитивно для меня.)
  • the_content является примером ловушки типа «фильтр».
  • хук the_content состоит из нескольких фильтров.
  • Фильтры изменяют данные. Они в основном фильтруют базу данных, изменяя данные до того, как пользователи их просматривают.
  • Обычное применение apply_filters (), например, заключается в применении фильтров the_content к $ content. В этом случае двойной возврат преобразуется в теги <p>, смайлики преобразуются в значки и т. Д.
  • «the_content» - это хук, а «the_content ()» - это функция.
ответил Marjorie Roswell 30 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 30 Sep 2010 01:04:15 +0400 2010, 01:04:15
0

В самых основных терминах apply_filters используется для инициализации ловушки фильтра ... add_filter назначает новую функцию для ловушек, которые уже были созданы.

ответил Steve 5 AM00000030000002131 2010, 03:32:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132