¿Cuál es el primer hook de acción que puedes utilizar?
Después de que la solución a esta pregunta fue hacer que una función se ejecute ANTES de que se dispare la acción init
sacando la secuencia de su función, me quedé pensando, ¿hay algún punto más temprano en la secuencia de carga de WP donde pueda enganchar una función?

muplugins_loaded
es el hook más temprano.
Dependiendo de tu configuración de WordPress, puede que no tengas ningún plugin en el directorio
MU_PLUGINS
. En ese caso, este hook podría no ejecutarse.
El siguiente mejor hook para activar es plugins_loaded
.
RECURSOS

Sí, pero ten en cuenta que se ejecuta antes de la carga de plugins normales y del tema, por lo que en la práctica es algo inútil. plugins_loaded
y after_setup_theme
son los más tempranos apropiados para plugins normales y el tema respectivamente.

respuesta actualizada. Verifica la acción deseada con la "Lista de ejecución de hooks".

Esta respuesta contiene información muy incorrecta. La acción muplugins_loaded
no está condicionada a nada. Se ejecutará. Sin embargo, si no hay mu-plugins, no estoy seguro de cómo podrías ejecutar código lo suficientemente temprano para usar este hook.

muplugins_loaded
NO es condicional, siempre se ejecuta. El único otro lugar donde se menciona esta información incorrecta en esta forma (también citada) es otra respuesta a la misma pregunta en StackOverflow: https://stackoverflow.com/questions/37723323/very-first-wordpress-action-hook.

Para cualquiera que esté interesado en descubrir esto por su cuenta, hay un plugin increíble llamado Query Monitor.
Instala y actívalo (obviamente en un entorno de desarrollo o staging) y simplemente selecciona lo que deseas desde el menú desplegable.

Como se mencionó en un comentario sobre la respuesta aceptada, el hook muplugins_loaded no es condicional. Si lees el código fuente, encontrarás que siempre se ejecuta, al menos en versiones recientes de WordPress. Según la documentación, también es el primer hook disponible. Sin embargo, a menos que realmente estés escribiendo un plugin de uso obligatorio (must-use) o activado en red, no tiene mucho sentido usarlo, ya que se ejecutará antes de que tu plugin o tema se cargue.
Si estás escribiendo un plugin, entonces plugins_loaded es el primer hook de acción general que puedes usar.
Si estás añadiendo código al archivo functions.php de tu tema, entonces podrías usar after_setup_theme.

La primera acción que puede ejecutarse durante la carga de una página de WordPress es mu_plugin_loaded
. Esta acción se ejecutará para cada plugin Must-Use (de uso obligatorio), sin embargo, si no hay plugins Must-Use en el sistema, esta acción no se ejecutará en absoluto.
La segunda acción que puede ejecutarse es network_plugin_loaded
. Similar a mu_plugin_loaded
, tiene el potencial de ejecutarse múltiples veces, una vez por cada plugin de red, pero también puede no ejecutarse si no hay plugins de red presentes.
La primera acción que siempre se ejecutará, incondicionalmente, es muplugins_loaded
(nota la forma plural y la falta de _
en comparación con la forma singular mu_plugin_loaded
).
Así que el comienzo de la secuencia de acciones se ve así:
- 1º:
mu_plugin_loaded
, 0 o más veces. - 2º:
network_plugin_loaded
, 0 o más veces. - 3º:
muplugins_loaded
, exactamente 1 vez.
