WordPress Мультисайт
З версії WordPress 3.0 можна створювати мережі сайтів, де буде один головний сайт із супер адміністратором і скільки завгодно підсайтів, у кожного з яких свій адміністратор. Такий режим установки називається Multisite, його історично коротко називають MU (MultiUser).
У цьому посібнику показано, як створити мережу сайтів WordPress, встановивши WorrdPress в режимі Multisite.
Multisite – це нова назва колишнього WordPress MU, який до версії WordPress 3.0 був плагіном, а потім став частиною WordPress.
Читайте також: Установка Multisite
Особливості Multisite
Під час встановлення WordPress у режимі «Мультисайт» усі сайти мережі зберігатимуться в єдиній базі даних, в єдиній папці на сервері та керуватимуться єдиною установкою (ядром) WordPress. При цьому сайтів може бути багато. Кожен сайт у мережі Multisite налаштовується окремо. Однак, плагіни, теми та користувачі стають спільними і це зручно.
Особливості та переваги «Мультисайт»:
У MU: єдиний движок, одна база даних, загальні теми та плагіни, загальна папка на сервері і тому:
- WordPress оновлюється один раз для всієї мережі сайтів;
- Плагіни та теми встановлюються один раз для всієї мережі;
- Плагіни та теми оновлюються один раз для всієї мережі;
- Плагін може бути активований для окремого сайту мережі або всіх сайтів відразу;
- Тема може бути “дозволена” для окремого сайту мережі або для всіх сайтів відразу;
- Якщо на кількох сайтах мережі використовується одна тема, її можна змінювати, створивши дочірню тему .
Єдина таблиця користувачів у базі даних:
- Зареєструвавшись на одному із сайтів мережі, користувач отримує обліковий запис для всієї мережі;
- Наявний у мережі користувача можна швидко додавати до сайтів мережі;
- Авторизований користувач буде авторизований на всіх сайтах мережі, яких він підключений;
- Користувачі можуть мати різні ролі на різних веб-сайтах мережі;
- Супер-адміністратор може дозволити користувачам створювати власні сайти в мережі;
Адреса (URL) сайту мережі може бути трьох видів:
- Підкаталог – example.com/site1 .
- Піддомен – site1.example.com .
- Окремий домен . З версії 4.5 цю можливість впровадили в ядро, докладніше тут . До цієї версії для цього потрібно було встановлювати плагін WordPress MU Domain Mapping .
У MU дуже зручно отримувати дані одного сайту мережі на іншому сайті та навпаки;
- Обов’язкові плагіни (mu-plugins) працюватимуть всім сайтів мережі. Їх не можна вимкнути для окремого сайту. При цьому їх наявність буде видно лише у плагінах усієї мережі, а в плагінах окремого сайту вони заховані;
Недоліки Multisite:
- Мережа сайтів складніше підтримувати – потрібно більше знань та вмінь.
- Багато непопулярних плагінів не вміють працювати в цьому режимі.
- Об’єм бази даних зростає з кожним новим сайтом.
- Ресурси хостингу будуть спільними для всіх сайтів і немає можливості розділити сайти між різними хостинг-майданчиками.
- FTP доступ і доступ до бази даних також буде загальним для всіх сайтів. Іноді це може стати проблемою.
- При оновленні ядра WordPress або плагінів, зміни торкнутися всієї мережі сайтів… Це може викликати проблеми на деяких сайтах мережі.
Коли Multisite може стати в нагоді?
Найчастіше простіше використовувати окрему установку WordPress і не вдаватися до тонкощів мережі сайтів. Але іноді режим MU може бути незамінним або просто заощадити купу часу.
MU добре підійде у таких випадках:
Коли ви маєте кілька тісно пов’язаних між собою сайтів. Наприклад, у вас є 3 сайти дуже схожі один на одного: «ремонт ванної», «ремонт вітальні», «ремонт спалень» і для кожного з них потрібен окремий домен.
MU відмінно підходить для створення мультимовних сайтів – один підсайт = одна локаль.
- Коли потрібно один обліковий запис для авторизації на різних сайтах.
В інших випадках, я рекомендував би використовувати просту установку WordPress. З нею у вас не буде купи зайвих питань – з нею простіше!
Управління мережею
Після установки MU з’являється нова роль «Супер-адміністратор» і новий розділ «Мої сайти» з вкладеним пунктом «Управління мережею» – запам’ятайте цей пункт, ним ви будете користуватися нерідко.
Супер-адміністратор може керувати всією мережею через пункт меню Керування мережею. А в ньому можна: створювати сайти, нових користувачів, встановлювати, видаляти, включати та вимикати плагіни та теми тощо.
В іншому, коли перейдіть на окремий сайт, все абсолютно так само як і в звичайній установці WordPress. Єдина відмінність: на сторінці додавання користувачів ми можемо прикріплювати наявних користувачів до поточного сайту.
Ще трохи особливостей для новачків:
Плагіни: після встановлення плагіна супер-адмін може включити плагін для всієї мережі сайтів відразу. Або можна перейти на окремий сайт та активувати плагін лише для поточного сайту мережі.
Користувачі: супер-адмін може створити нового користувача або прикріпити існуючий до вказаного сайту.
Теми: після встановлення теми супер-адмін може дозволити використання теми для всіх сайтів відразу. Або можна перейти в налаштування окремого сайту в розділі «мережі сайтів» та дозволити використовувати тему лише для нього.
Структура сайтів та блогів
При встановленні MU з’являються 3 нових поняття: мережі, сайти та блоги. Щоб багато чого стало зрозумілим, давайте подивимося як зберігаються опції кожного типу.
У WordPress є чотири схожі одна на одну функції для отримання опцій:
Ці функції можна зібрати до груп:
get_network_option() і get_site_option()
get_blog_option() і get_option()
“Сайти” вони ж “Мережі” в MU
Це основні сайти (які за сумісництвом також блоги). Зазвичай такий основний сайт лише один. У нього є ті самі дані що й у будь-якого блогу (своя таблиця wp_options ). Однак він також має свої опції, які знаходяться в таблиці wp_sitemeta
. Саме з wp_sitemeta
одержують дані функції: *_network_option() і *_site_option() .
get_site_option() – це її обгортка і в ній ми не можемо вказати ID мережі – там завжди використовується поточна мережа.
Повторюся, в мультисайт збірці, як правило, використовується всього один основний сайт (мережа), це означає, що в 99% випадків опція get_network_option() дорівнює get_site_option() .
«Блоги» у MU
Це сайти, що знаходяться під керуванням основного сайту (мережі). Кожен з таких блогів має окрему таблицю *_options . get_option() , тільки вона отримує опції зазначеного блогу, а не поточного.
Відмінності Multisite від звичайної установки
Відмінності у файлах
Файли завантажуються в ту ж директорію wp-content/uploads . Більше того, нічого не змінюється для головного веб-сайту мережі. Зміни видно лише для дод. сайтів мережі: у них файли завантажуються в нову теку wp-content/uploads/sites/2 , де 2 – це ID сайту мережі.
Відмінності у таблицях бази даних
Створюється 6 нових таблиць із префіксом головного сайту. Таблиці: users і usermeta стають спільними всім сайтів мережі. Столі таблиці створюються окремо для кожного сайту і відрізняються вони префіксом, наприклад якщо у головного сайту він був wp_ , то у першого сайту мережі він стане wp_1_ .
Які додаткові таблиці створюються:
- wp_blogs
- Усі сайти підмережі.
- wp_blogmeta
З версії 5.1. Докладніше . Таблиця для глобальних опцій веб-сайту мережі, які передбачається використовувати в мережі веб-сайту, а не окремо на веб-сайті. Окремі опції сайту потрібно зберігати у таблиці опцій окремого сайту. Не плутайте з wp_sitemeta .
Пов’язані функції:
get_site_meta( $id, $meta_key, $single ) update_site_meta( $id, $meta_key, $meta_value, $prev_value ) add_site_meta( $id, $meta_key, $meta_value, $unique ) delete_site_meta( $id, $meta_key, $meta_value )
- wp_blog_versions
- Містить поточну версію бази даних кожного сайту. Дані оновлюються під час оновлення БД для кожного сайту мережі.
- wp_registration_log
- Містить дані адміністраторів сайтів, які створюються під час створення сайтів.
- wp_signups
-
Містить користувачів, зареєстрованих через базову реєстрацію WordPress зі сторінки:
Администрация > Супер Админ > Настройки
. - wp_site
- Містить адреси основних сайтів.
- wp_sitemeta
- Дані сайтів: різні опції, включаючи адміністратора сайту.
- wp_users
-
Список користувачів усіх веб-сайтів мережі. Це загальна таблиця користувачів для всієї мережі. Це звична таблиця, тільки мультисайт версії додаються ще 2 поля:
spam і
delete . - wp_usermeta
- Містить мета-дані користувачів. Установки користувача для різних веб-сайтів мережі.
- Базові таблиці кожного сайту мережі
-
wp_posts ,
wp_postmeta ,
wp_options ,
wp_terms і т.д.. Для кожного сайту мережі створюються однакові таблиці, але з різним префіксом: wp_options, wp_1_options, wp_2_options …
–
При написанні були використані такі матеріали та особистий досвід: