Addon Sunrise File Loader
Az Ultimate Multisite 2.8.0 egy sunrise bővítményöltőt (extension loader) ad hozzá az add-onokhoz és a benutzerdefini Ultimate Multisite-plugin integrációkhoz, amelyeknek a WordPress sunrise bootrapping alatt kell futniük, anélkül, hogy szerkeszteni kellene a generált wp-content/sunrise.php fájlt.
Mikor kell használni
Sunrise bővítményöltőt akkor kell használni, ha az integrációjának a rendszeres pluginek betöltése előtt kell futnia, például benutzerdefini domain útvonalazás (custom domain routing), host-specifikus kéréskezelés vagy korai hálózat (network) bootrap beállítások.
A normál integrációk esetén előnyben részesíteni kell a rendszeres WordPress plugineket, MU-plugineket és az Ultimate Multisite dokumentált hook-jait. A sunrise kód nagyon korán fut, és kicsi, védelmi és függőségmentesnek kell maradnia.
A fájl elnevezési konvenció
Létrehoz egy PHP fájlt, nevetve sunrise.php, egy add-on könyvtárában, amelynek neve ultimate-multisite- karakterekkel kezdődik:
wp-content/plugins/ultimate-multisite-example-addon/sunrise.php
Az ööltő a pluginek könyvtárában keresi ezt a mintát:
wp-content/plugins/ultimate-multisite-*/sunrise.php
A megeálló fájlokat az add-on útvonalának ABC sorrendjében tölti be.
Hol helyezzük el a fájlt
Helyezze el a fájlt az add-on gyökérkönyvtárában, amely a sunrise viselkedéséért felelős:
wp-content/
└── plugins/
└── ultimate-multisite-example-addon/
├── ultimate-multisite-example-addon.php
└── sunrise.php
A scan a WP_CONTENT_DIR relatív értelméhez viszonyít, nem a WP_PLUGIN_DIR aktuális értékéhez. Ez biztosítja a felfedezés stabilitását, amikor a multi-tenancy vagy más korai bootrap kódok a plugin könyvtár konstansait módosítják a sunrise alatt.
Ne szerkeszze közvetlenül a generált wp-content/sunrise.php fájlt. Az ööltő lehetővé teszi a benutzerdefini kódról, hogy bővítsen a sunrise viselkedését, anélkül, hogy a core sunrise f ájlt forgatna (forking), amit az Ultimate Multisite telepít és frissít.
Elérhető hook-ok és filterek
Az addon sunrise fájlok az Ultimate Multisite domain mapping betöltése után, és a WordPress által ms_loaded kiüsselése előtt futnak. Ebben a pontban egy sunrise fájl:
- elolvassa vagy átírja a
$current_site-ot és$current_blog-ot; - hozzáférhet a
$wpdb-hez, miután a adatbázis konfigurációja betöltődött; - definálhat sunrise-idő konstansokat, mint például a
BLOG_ID_CURRENT_SITE, szükség esetén; - elolvassa az Ultimate Multisite sunrise helper állapotát, beleértve a multi-tenancy integrációk által használt útvonalazási állapotot.
Az Ultimate Multisite a wu_sunrise_loaded action-t küldi ki, miután az ööltő befejezte a munkáját. Használja ezt az action-t olyan kódhoz, amelynek a sunrise bootrap befejeződését követően kell futnia, de még mindig a sunrise életciklusához tartozik.
Csak olyan függvényeket hívjon meg, amelyek már betöltődtek a sunrise fázisában. Kerülje el a adatbázis-intensive munkát, a template rendering-t, az HTTP kéréseket és azokat a kódot, amelyek feltételezik, hogy a normál plugin betöltési sorrendje befejeződött.
Minimális példa
<?php
/**
* Sunrise extension for a custom host integration.
*/
if (! defined('ABSPATH')) {
exit;
}
if (isset($current_blog) && $current_blog instanceof stdClass) {
// Adjust early routing or constants before ms_loaded.
}
A fájl kihelyezése után töltse be egy mappolt domain-t és egy nem mappolt főoldal (main-site) URL-t, hogy megerősítse, hogy mindkét útvonal megfelelően bootrap-olja.