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

muplugins_loaded
— это самый ранний хук.
В зависимости от вашей настройки WordPress, у вас может не быть плагинов в директории
MU_PLUGINS
. В таком случае этот хук может не сработать.
Следующий лучший хук для запуска — это plugins_loaded
.
РЕСУРСЫ

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

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

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

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

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

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

Первое действие, которое может сработать при загрузке страницы 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 раз.
