Преминете към основното съдържание

Addon Sunrise File Loader

Ultimate Multisite 2.8.0 добавя зареждащ модул (loader) „sunrise“ за аддонове и персонализирани MU-plugin интеграции, които трябва да работят по време на процеса на стартиране (bootstrapping) на WordPress „sunrise“, без да е необходимо ръчно редактиране на генерирания файл wp-content/sunrise.php.

Кога да го използвате

Използвайте sunrise extension, когато интеграцията ви трябва да работи преди зареждането на обикновените плагини, например при маршрутизиране на персонализирани домейни, обработка на заявки специфични за хост или ранни корекции на network bootstrap.

За нормални интеграции, предпочитайте обикновените WordPress плагини, MU-plugins и документираните хукове на Ultimate Multisite. Кодът, който работи в „sunrise“, се изпълнява много рано и трябва да бъде малък, защитен и без зависимости.

Конвенция за именопис на файловете

Създайте PHP файл с име sunrise.php в директорията на аддона, чието име започва с ultimate-multisite-:

wp-content/plugins/ultimate-multisite-example-addon/sunrise.php

Зареждащият модул сканира директорията на плагините за този шаблон:

wp-content/plugins/ultimate-multisite-*/sunrise.php

Съвпадащите файлове се зареждат в алфабитно ред, според пътя на аддона.

Къде да поставите файла

Поставете файла в основната директория на аддона, който притежава поведението „sunrise“:

wp-content/
└── plugins/
└── ultimate-multisite-example-addon/
├── ultimate-multisite-example-addon.php
└── sunrise.php

Сканирането се решава спрямо WP_CONTENT_DIR, а не спрямо текущото значение на WP_PLUGIN_DIR. Това запазва откриването стабилно, когато мулти-тенантингите или друг код за ранно стартиране променят константите на директорията на плагините по време на „sunrise“.

Не редактирайте директно генерирания файл wp-content/sunrise.php. Зареждащият модул позволява на персонализирания код да разширява поведението на „sunrise“, без да се налага да се форкира основният файл „sunrise“, който Ultimate Multisite инсталира и актуализира.

Достъпни хукове и филтри

Файловете на аддоните за „sunrise“ работят след като Ultimate Multisite е заредил мапирането на домейни и преди WordPress да изстреля ms_loaded. В този момент файлът на „sunrise“ може да:

  • чете или презаписва $current_site и $current_blog;
  • има достъп до $wpdb след като е заредирана конфигурацията на базата данни;
  • дефинира константи за времето на „sunrise“, като например BLOG_ID_CURRENT_SITE, когато е необходимо;
  • чете състоянието на помощника за „sunrise“ на Ultimate Multisite, включително състоянието на маршрутизиране, използвано от мулти-тенантингите.

Ultimate Multisite изстрелва wu_sunrise_loaded след като неговият зареждащ модул за „sunrise“ приключи. Използвайте този action за код, който трябва да работи след като е завършен bootstrap на „sunrise“, но все пак принадлежи към жизненния цикъл на „sunrise“.

Извиквайте само функции, които вече са заредени в фазата на „sunrise“. Избягвайте работа, която е тежка за база данни, рендиране на шаблони, HTTP заявки и код, който приема, че е завършен нормалният ред на зареждане на плагини.

Минимален пример

<?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.
}

След деплойване на файла, заредите мапиран домен и URL на основния сайт, който не е мапиран, за да потвърдите, че и двата пътя все още стартират правилно.