Какой самый ранний хук действия можно использовать?

21 июл. 2011 г., 12:13:08
Просмотры: 39.9K
Голосов: 24

После того как решением этого вопроса стало выполнение функции ДО срабатывания хука init путем вынесения последовательности из функции, я задумался - существует ли возможность подключить функцию еще раньше в последовательности загрузки WordPress?

1
Комментарии

Мне бы очень хотелось, чтобы они добавили вызов плагина до загрузки всей системы.

Xeoncross Xeoncross
22 янв. 2012 г. 06:00:25
Все ответы на вопрос 4
4
19

muplugins_loaded — это самый ранний хук.

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

Следующий лучший хук для запуска — это plugins_loaded.

РЕСУРСЫ

  1. WordPress Codex — Список действий (Action Reference List)
  2. Вопрос/Ответ: Как получить последовательность выполнения хуков в WordPress?
  3. Вопрос/Ответ: Разбираемся с загрузкой ядра WordPress
21 июл. 2011 г. 13:08:01
Комментарии

Да, но учтите, что он выполняется до загрузки обычных плагинов и темы, поэтому на практике он несколько бесполезен. plugins_loaded и after_setup_theme являются наиболее ранними подходящими хуками для обычных плагинов и темы соответственно.

Rarst Rarst
21 июл. 2011 г. 14:09:48

ответ обновлен. проверьте нужное действие с помощью "Списка выполняемых хуков".

T.Todua T.Todua
10 июл. 2015 г. 18:10:36

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

s_ha_dum s_ha_dum
10 янв. 2016 г. 17:08:59

muplugins_loaded НЕ является условным, он срабатывает всегда. Единственное другое место, где упоминается эта ложная информация в такой же (также цитируемой) форме — это другой ответ на тот же вопрос на StackOverflow: https://stackoverflow.com/questions/37723323/very-first-wordpress-action-hook.

Bence Szalai Bence Szalai
11 авг. 2024 г. 14:37:09
0
12

Для тех, кто хочет разобраться в этом самостоятельно, есть отличный плагин под названием Query Monitor.

Установите и активируйте плагин (разумеется, на тестовой или разработческой версии сайта) и просто выберите нужный пункт из выпадающего меню.

Интерфейс плагина Query Monitor

22 окт. 2017 г. 18:51:19
0

Как упоминалось в комментарии к принятому ответу, хук muplugins_loaded не является условным. Если вы прочитаете исходный код, то обнаружите, что он срабатывает всегда — по крайней мере, в последних версиях WordPress. Согласно документации, это также первый доступный хук. Однако, если вы на самом деле не пишете обязательный (must-use) или сетевой плагин, использовать его не имеет особого смысла, так как он сработает до загрузки вашего плагина или темы.

Если вы разрабатываете плагин, то plugins_loaded — это первый общий хук действия, который следует использовать.

Если вы добавляете код в файл functions.php вашей темы, то можно использовать after_setup_theme.

7 янв. 2019 г. 14:33:15
0

Первое действие, которое может сработать при загрузке страницы WordPress, это mu_plugin_loaded. Это действие срабатывает для каждого обязательного плагина (Must-Use Plugin), однако если в системе нет обязательных плагинов, это действие не сработает вообще.

Второе действие, которое может сработать, это network_plugin_loaded. Подобно mu_plugin_loaded, оно может сработать несколько раз, один раз для каждого сетевого плагина (Network Plugin), но также может не сработать вообще, если сетевые плагины отсутствуют.

Первое действие, которое всегда срабатывает без условий, это muplugins_loaded (обратите внимание на форму множественного числа и отсутствие _ по сравнению с единственным числом mu_plugin_loaded).

Таким образом, начало последовательности действий выглядит так:

  • 1-е: mu_plugin_loaded, 0 или более раз.
  • 2-е: network_plugin_loaded, 0 или более раз.
  • 3-е: muplugins_loaded, ровно 1 раз.
11 авг. 2024 г. 14:42:53