Перейти до основного вмісту

Addon Sunrise File Loader

Ultimate Multisite 2.8.0 додає завантажувач розширень sunrise для аддонів та кастомних інтеграцій MU-plugin, які потрібно виконати під час ініціалізації WordPress (sunrise bootstrapping), не редагуючи при цьому згенерований файл wp-content/sunrise.php.

Коли використовувати

Використовуйте розширення sunrise, якщо ваша інтеграція має працювати до завантаження звичайних плагінів, наприклад, для кастомного маршрутизації доменів, обробки запитів, специфічних для хоста, або ранніх коригувань мережевої ініціалізації.

Для звичайних інтеграцій краще використовувати звичайні плагіни WordPress, MU-плагіни та задокументовані хуки 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. Це забезпечує стабільність виявлення, коли багатоорендність (multi-tenancy) або інший ранній код ініціалізації змінює константи каталогу плагінів під час 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, за потреби;
  • зчитувати стан допоміжного класу Ultimate Multisite для sunrise, включаючи стан маршрутизації, який використовується інтеграціями багатоорендності.

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 основного сайту, який не мапінгований, щоб підтвердити, що обидва шляхи все ще коректно ініціалізуються.