Покращення режиму Multistate в WordPress 4.4

336

Від автора: я обожнюю режим Multisite у WordPress: я використовую його для управління невеликою мережею сайтів клієнтів, зберігаю всі свої демо-сайти в одному місці, а також дозволяю клієнтам запускати свої власні сайти в окремій мережі.

Кожного разу з виходом нової версії WordPress приємно помічати, як режим Multisite стає трішки краще. В WP 4.4 режим Multisite внесено кілька приємних змін, які будуть дуже корисні зокрема при налаштуванні реєстрації або роботі з іншими налаштуваннями. Я склав короткий огляд поліпшень.

Об’єкт WP_Network

Для більш акуратною налаштування і легкого визначення режиму Multistate був доданий об’єкт WP_Network, який заповнює глобальні змінні $current_site і $current_blog.

Для забезпечення максимальної сумісності команда розробників вже тестувала всі внесені зміни, однак якщо ж ви все-таки вручну заповніть ці змінні чи будете з ними взаємодіяти яким-небудь іншим чином, вам потрібно протестувати код.

Функції мережевих параметрів

В WordPress 4.4 з’явилися 4 нові функції мережевих параметрів:

add_network_option()

update_network_option()

get_network_option()

delete_network_option()

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

add_site_option()

update_site_option()

get_site_option()

delete_site_option()

Зверніть увагу на назву чотирьох верхніх функцій з закінченням *_site_option(), вони вас можуть заплутати. Точно такі ж функції є в WordPress і при відключеному режимі Multistate. Так що якщо у вас запущена мережа, то функції *_site_option() відносяться до всієї мережі, а не тільки до конкретного сайту, а функції *_network_option() не відносяться до поточної мережі, а навпаки відносяться до всім іншим мережам крім поточної.

Нові Екшен хуки

У версії 4.4 також було представлено декілька нових хуків. Вони можуть бути корисними при налаштуванні способу конфігурації мережі. Серед них:

before_signup_header: цей новий екшен запускається перед завантаженням сторінки реєстрації у файлі wp-signup.php. Якщо ви хочете внести зміни в сторінку реєстрації, зробити редирект на іншу сторінку або додати перевірок перед завантаженням сторінки, то можете прикріпити свої функції до цього хуку.

ms_network_not_found: запускається перед хуком ms_not_installed у разі, якщо глобальна змінна $current_site порожня. Раніше б запускався хук ms_site_not_found, а даних хук дозволяє працювати з мережами сайтів. Тобто якщо мережа не знайдена, можна задати перенаправлення на іншу мережу, а не показувати звичайний екран з помилкою.

Хук invite_user запускається після того, як користувач був запрошений в мережу, але до того, як йому прийшло повідомлення про це. Стане в нагоді в тому випадку, якщо потрібно змінити спосіб роботи повідомлень або для того, щоб додати щось перед повідомленням (наприклад, зауваження або повідомлення іншому користувачеві).

Поліпшення інтерфейсу адміністратора мережі

В панель адміністратора мережі були внесені невеликі, але корисні поліпшення:

Мережеві адміністратори (або інші користувачі з правами управління мережею manage_network) можуть переглядати активовані мережеві плагіни у вкладці Плагіни для кожного сайту. Мені вже знадобилася ця функція під час пошуку потенційно конфліктних плагінів на окремих сайтах.

Під час додавання нового сайту в мережу тепер можна вибрати мову, яка може не збігатися з мовою основного сайту або інших сайтів у мережі. Це працює як через вкладку Мережа панелі адміністратора, так і через сторінку wp-signup.php. Функція дуже корисна для адміністраторів сайтів однієї мережі, що говорять на різних мовах. У минулому я вже використовував режим Multistate для управління багатомовними мережами, коли клієнту були потрібні версії сайту на інших мовах. Дана функція дуже корисна в таких випадках.

Для пошуку користувачів в мережі тепер можна використовувати знак *, щоб результат потрапили менш релевантні запису. Буде корисно в тому випадку, якщо у вашій мережі багато користувачів, а вам потрібно знайти всіх користувачів з однаковим суфіксом в адресі електронної пошти.

Покращення режиму Multistate в WordPress 4.4

Тепер можна вибрати мову для кожного сайту в мережі

Висновок

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

Приємно бачити, що з новою версією WordPress в режимі Multistate з’явилися невеликі зміни – от якби так було завжди!