Действительные символы для действий, перехватов и фильтров

Я никогда не видел тег, например do_action('something_10'). Это недействительно, если я использую числа?

Если метод действителен, как я могу условно написать разные числа в строке тега? Например, следующий код правильный ($ grade - это число)?

do_action("new_grade_$grade")
6 голосов | спросил Jenny 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 05:04:00 +0400 2012, 05:04:00

2 ответа


7
  1. Когда вы «подключаете» /add_action/*_filter('whatever'); функцию обратного вызова к do_action('whatever');, то вы в основном добавляете имя функции (или объектного метода) в global $wp_filters -array.
  2. Таким образом, вы добавляете имя функции /метода в массив, который построен следующим образом

    $wp_filter[ $tag ][ $priority ][ $idx ]
    // $tag = action/filter name
    // $priority = 3rd argument / execution order
    // $idx = "unique" name
    
  3. Не третий аргумент /$idx построен с использованием _wp_filter_build_unique_id(), которая принимает первые аргументы из add_action/*_filter().
  4. Внутри этой функции каждое имя функции остается неизменным, меняются только имена методов. Это причина, почему вы часто находите имена «funky», префикс которых довольно длинный.
  

Можно ли добавлять числа после букв в теге do_action?

Итак, да, числа полностью действительны при наложении действий на крючки. Подводя итог, можно сохранить a-zA-Z0-9_ как имя функции /метода /переменной. - не поддерживается. И хотя некоторые персонажи могут хорошо работать в вашей системе, в основном это зависит от кодировки, если ваше выбранное имя функции (пример: _wUT?a_nice_DÄY!()) работает или не. Сам WordPress не проверяет, действительна ли функция /var /hook /filter /whatever name.


Дополнение к @BrianFegter ответит о «контекстных крючках».

Вы можете увидеть некоторые «контекстные крючки», когда вы смотрите на «help» -панель на любом экране в вашей (MU или одной) установке, используя этот плагин 1) .

введите описание изображения здесь введите описание изображения здесь>> </p>

<p> <sup> 1) Плагин, вдохновленный статьей @StephenHarris. </sup> </p></body></html>

ответил kaiser 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 05:56:00 +0400 2012, 05:56:00
2

Да, вы можете динамически создавать свои собственные крючки действий. WordPress имеет несколько динамических крючков, таких как admin_head-hookname и admin_footer-hookname. new_grade_$n является допустимым именем.

ответил Brian Fegter 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 05:19:15 +0400 2012, 05:19:15

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

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

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