WordPressin wp_loaded vs. init: oikea käyttöWordPressin hook-järjestelmä on keskeinen osa sen laajennettavuutta, mutta hookien ajoitus on kriittinen. Kaksi yleistä hookia, joita usein sekoitetaan, ovat wp_loaded ja init. Molemmat toimivat varhaisessa vaiheessa, mutta niillä on selkeä ero tarkoituksessa ja käyttötilanteissa.

Ymmärtämällä niiden eron voit kirjoittaa lisäosia, teemoja ja mu-pluginsia, jotka toimivat oikein ilman yllätyksiä.

wp_loaded: heti WordPressin latauksen jälkeen

wp_loaded laukeaa heti sen jälkeen, kun WordPressin ydin on ladattu, kaikki tiedostot tuotu ja lisäosat alustettu. Tämä tapahtuu ennen queryn alustamista, rewrite-järjestelmän tarkistusta ja init-hookin ajoa.

Oikea käyttö

wp_loaded on tarkoitettu järjestelmän alustuksiin, jotka eivät riipu querystä ja lisäosien dependency-checkiin. Esimerkkejä:

  • Tarkista PHP-versio ja riippuvuudet

  • Lataa lisäosien autoload

  • Määritä globaalit asetukset

Varoitukset

wp_loaded ei tiedä, mikä postaus tai query on kyseessä, eikä se ole paikka post-typejen rekisteröinnille tai template- ja content-hookien käyttöön.

init: WordPressin alustuksen perustaso

init laukeaa, kun core on ladattu, lisäosat alustettu ja query alustettu mutta ennen renderöintiä. Init-hook on oikea paikka:

  • Custom post typejen rekisteröintiin

  • Taksonomioiden määrittelyyn

  • Shortcodien ja REST-endpointien rekisteröintiin

Oikea käyttö

Esimerkkejä initin käytöstä:

  • register_post_type(’book’, […])

  • register_taxonomy(’genre’, ’book’, […])

  • Lisätä shortcode: [my_shortcode]

  • Rekisteröidä REST API endpoint

Init tapahtuu ennen sivun renderöintiä, joten kaikki rekisteröinnit ehtivät mukaan.

Eroavaisuudet selkeästi

Ominaisuus wp_loaded init
Ajoitus Core ja lisäosat ladattu Query alustettu mutta ei renderöintiä
Käyttötarkoitus Ympäristön alustaminen, dependency check Post-type, taksonomia, shortcode, REST-endpoint
Query käytettävissä Ei Ei vielä lopullista template-queryä
Soveltuvuus lisäosille Kyllä, bootstrapping Kyllä, rekisteröinnit

Käytännön vinkkejä

  • Bootstrap ja riippuvuudet → wp_loaded

  • Rekisteröinnit ja API → init

  • Plugin-yhteensopivuus → monet lisäosat odottavat initia rekisteröintien ajoituskohtana

  • REST API ja wp_loaded → ympäristön tarkistukseen, endpointit rekisteröidään initissa

Yhteenveto

wp_loaded ja init eivät ole toistensa korvaajia. Oikein käytettynä ne tekevät WordPress-lisäosista ennustettavia, skaalautuvia ja yhteensopivia muiden pluginien kanssa. Väärin käytettynä ne voivat johtaa rikkinäisiin endpointteihin, puuttuviin post-typeihin ja vaikeasti löydettäviin bugiin.