Care este cel mai timpuriu action hook pe care îl poți folosi?
După ce soluția la această întrebare a fost să facem o funcție să se execute ÎNAINTE ca action-ul init
să fie declanșat prin scoaterea secvenței din funcția sa, m-am gândit, există vreun moment mai devreme în secvența de încărcare WP în care pot să conectez o funcție?

muplugins_loaded
este primul hook disponibil.
În funcție de configurația WordPress, este posibil să nu ai niciun plugin în directorul
MU_PLUGINS
. În acest caz, acest hook poate să nu se declanșeze.
Următorul hook recomandat pentru declanșare este plugins_loaded
.
RESURSE
- WordPress Codex - Lista de Referință pentru Acțiuni
- Întrebare/Răspuns: Cum să obții secvența de rulare a hook-urilor în WordPress?
- Întrebare/Răspuns: Înțelegerea Nucleului de Încărcare WP

Da, dar rețineți că rulează înainte de încărcarea pluginurilor normale și a temei, așa că este oarecum inutil în practică. plugins_loaded
și after_setup_theme
sunt cele mai potrivite pentru pluginurile normale și tema respectiv.

răspuns actualizat. verificați acțiunea dorită cu "Lista de hook-uri executate".

Acest răspuns conține informații foarte greșite. Acțiunea muplugins_loaded
nu este condiționată de nimic. Se va executa. Totuși, dacă nu există mu-plugins, nu sunt sigur cum ai putea rula codul suficient de devreme pentru a folosi acest hook.

muplugins_loaded
NU este condițional, se declanșează întotdeauna. Singurul alt loc unde această informație eronată este menționată în această formă (de asemenea citată) este un alt răspuns la aceeași întrebare pe StackOverflow: https://stackoverflow.com/questions/37723323/very-first-wordpress-action-hook.

Pentru cei interesați să afle acest lucru singuri, există un plugin minunat numit Query Monitor.
Instalați și activați pluginul (evident, pe o versiune de staging sau development) și selectați ce doriți din meniul derulant.

După cum s-a menționat într-un comentariu la răspunsul acceptat, hook-ul muplugins_loaded nu este condițional. Dacă citiți codul sursă, veți descoperi că acesta este întotdeauna declanșat - cel puțin în versiunile recente ale WordPress. Conform documentației, acesta este și primul hook disponibil. Cu toate acestea, dacă nu scrieți efectiv un plugin must-use sau activat la nivel de rețea, nu prea are sens să îl folosiți, deoarece se va declanșa înainte ca plugin-ul sau tema dumneavoastră să fie încărcată.
Dacă scrieți un plugin, atunci plugins_loaded este primul hook general de acțiune pe care îl puteți utiliza.
Dacă adăugați cod în fișierul functions.php al temei dumneavoastră, atunci ați putea folosi after_setup_theme.

Prima acțiune care se poate declanșa în timpul încărcării unei pagini WordPress este mu_plugin_loaded
. Această acțiune se va declanșa pentru fiecare plugin Must-Use, însă dacă nu există pluginuri Must-Use în sistem, această acțiune nu se va declanșa deloc.
A doua acțiune care se poate declanșa este network_plugin_loaded
. Similar cu mu_plugin_loaded
, are potențialul de a se declanșa de mai multe ori, o dată pentru fiecare plugin de rețea, dar poate să nu se declanșeze deloc dacă nu există pluginuri de rețea.
Prima acțiune care se va declanșa întotdeauna, fără condiții, este muplugins_loaded
(observați forma la plural și absența lui _
față de singularul mu_plugin_loaded
).
Deci, începutul secvenței de acțiuni arată astfel:
- 1:
mu_plugin_loaded
, de 0 sau de mai multe ori. - 2:
network_plugin_loaded
, de 0 sau de mai multe ori. - 3:
muplugins_loaded
, exact o dată.
