В каком приоритете add_filter перезаписывает основные функции?

Я пишу плагин, который добавляет дополнительные эскизы, флажки и т. д. до конца сообщения.

Я пытаюсь понять, как правильно использовать add_filter.

В принципе, у меня есть

add_filter('the_content', 'do_some_magic_at_the_end');

И есть соответствующая функция do_some_magic_at_the_end, которая принимает $ content и добавляет некоторые вещи к ней.

Я хочу, чтобы этот фильтр добавлялся после всех других фильтров. Я не хочу, чтобы он переписывал какой-либо другой фильтр. Документы говорят, что приоритет по умолчанию - 10, поэтому я предполагаю, что он просто добавляется в цепочку фильтров, которые запускаются на the_content.

Если я задаю приоритет 1, перезапишет ли он какие-либо основные функции?

4 голоса | спросил jim 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 23 Sep 2010 08:16:36 +0400 2010, 08:16:36

2 ответа


14

Нет окончательного ответа на этот вопрос, потому что нет предела приоритетам высокого /низкого уровня. Также плагины могут быть гораздо менее осторожны, чем ядро ​​с этим.

  • 11 является хорошим числом после приоритета по умолчанию;
  • 20 опаздывать;
  • несколько тысяч хороши быть позже, чем кто-либо, кто не поставил больше нулей в своих тысячах;
  • 9 - хорошее число, которое немного раньше, чем по умолчанию;
  • 1, чтобы быть действительно ранним;
  • -1 будет почти окончательно первым, потому что очень мало людей помнят, что приоритеты могут пойти отрицательно.

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

И если вы создаете плагин для распространения, вы можете догадаться, но вы не можете быть уверены.

ответил Rarst 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 23 Sep 2010 09:16:16 +0400 2010, 09:16:16
2

Вы ничего не перезапишете. Каждый уровень приоритета фактически представляет собой список фильтров, которые нужно использовать. Если у вас есть несколько разных вещей, связанных с одним и тем же фильтром с одинаковым приоритетом, они запускают all .

ответил Dougal Campbell 19 WedEurope/Moscow2012-12-19T00:06:56+04:00Europe/Moscow12bEurope/MoscowWed, 19 Dec 2012 00:06:56 +0400 2012, 00:06:56

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

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

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